最近在开发过程中,需要读取PostGresql数据库中的信息,一直都是对sql server数据库进行操作,第一次接触PostGresql数据库,现在我把如果操作此数据库的方法总结一下:
1. 连接到PostGresql数据库的客户端 pgAdmin
pgAdmin 是可以连接到PostGresql数据库的一个客户端,安装好客户端后,输入IP 、 Port、 User Id、Password、DataBase后就可以连接到数据库了,然后就可以进行一些数据库操作;
如下图,是pgAdmin的界面:
单击1,出现连接数据库的界面,如下图:
输入好信息后,单击OK,即连接到数据库,下面我们对数据库进行一下查询操作:
单击2处按钮,在弹出窗口中输入sql语句,执行即可看到结果,如下图:
大家可以看到,PostGresql的语句和sql语句还是有一定区别的,用sql语句查询该信息为“SELECT TOP 1* FROM LOG”这里不再介绍
1.在.net项目中需要引用两个dll,分别是Npgsql.dll和 Mono.Security.dll
2.下面是代码:
public static class sqlHelper
{
/// <summary>
/// 数据库连接字符串
/// </summary>
private static readonly string StrConnection = ConfigurationSettings.AppSettings["Conn"].ToString();
/// <summary>
/// 执行sql返回Table
/// </summary>
/// <param name="StrText"></param>
/// <param name="StrConnection"></param>
/// <returns>返回Table</returns>
public static DataTable GetPostgreTable(string StrText)
{
using (NpgsqlConnection conn = new NpgsqlConnection(StrConnection))
{
conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand(StrText,conn);
NpgsqlDataAdapter NpgDa = new NpgsqlDataAdapter(cmd);
DataTable dt = new DataTable();
NpgDa.Fill(dt);
return dt;
}
}
/// <summary>
/// 执行sql返回字符串
/// </summary>
/// <param name="strText"></param>
/// <param name="StrConnection"></param>
/// <returns>返回字符串</returns>
public static string GetpostgreExecuteScalar(string strText,string StrConnection)
{
using (NpgsqlConnection conn = new NpgsqlConnection(StrConnection))
{
conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand(strText,conn);
string PostgreScalar = cmd.ExecuteScalar().ToString();
if (PostgreScalar != null || !string.IsNullOrEmpty(PostgreScalar))
return PostgreScalar;
else return null;
}
}
/// <summary>
/// 执行sql返回执行是否成功
/// </summary>
/// <param name="StrText"></param>
/// <param name="StrConnection"></param>
/// <returns>返回执行是否成功</returns>
public static bool PostgreExecuQuery(string StrText,string StrConnection)
{
using (NpgsqlConnection conn = new NpgsqlConnection(StrConnection))
{
conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand(StrText,conn);
int n = cmd.ExecuteNonQuery();
conn.Close();
if (n > 0) return true;
else return false;
}
}
}
希望对大家能够有所帮助
原文链接:https://www.f2er.com/postgresql/196707.html