在开发中遇到一个小问题,就是业务中第一个流程录入的人员信息由于历史原因是存在一个Postage数据库中,个人不是特别了解这个数据库,而且之前的开发都是在sqlServer中使用DBLink连接这个数据库。使用DBlinnk带条件查询会发现这个查询会消耗十秒左右的时间,于是在一个查询页面中,我打算直接连接这个Postage数据库进行查询。
于是搜索各种C#直连Postage数据库的方法,发现都提示我需要Npgsql.dll和Mono.Security.dll这两个dll,缺少后者会报错。但是很多教程给的地址失效了,无法下载,最后在NuGet Gallery | Npgsql 2.2.3网页找到了方法 使用NuGet将这两个dll同时导入项目。
但是这个版本的Npgsql好像只支持到.net4.5(如下图
),我写的项目是.net4.0,满足需求。
然后根据其他教程给的提示,写了一个查询的方法,仅供参考。
public static DataTable ExecuteQuery(string sqrstr)
{
string connStr = @"PORT=5432;DATABASE=*****;HOST=***.**.**.**;PASSWORD=*********;USER ID=*****";
NpgsqlConnection sqlConn = new NpgsqlConnection(connStr);
DataTable dt = new DataTable();
try
{
using (NpgsqlDataAdapter sqldap = new NpgsqlDataAdapter(sqrstr, sqlConn))
{
sqldap.Fill(dt);
}
return dt;
}
catch (System.Exception ex)
{
// throw ex;
return dt;
}
}