C#中使用PostgreSQL

一、C#连接postgresql

1.为了访问PostgreSQL数据库,需要从pgfoundry网站,下载Npgsql .Net Data Provider for Postgresql的组件。
      访问 URL:http://pgfoundry.org/frs/?group_id=1000140 注:因为使用的是Net4.0,所以下载了Npgsql-2.2.3-net40.zip。

2.解压缩zip文件,把 Npgsql.dllMono.Security.dll文件拷贝到C#工程目录的packages目录中,加入到References。

3.在需要使用Npgsql的C#文件头,加入如下的using语句 : using Npgsql;

二、使用

2.1 连接字符串

1、在配置文件配置的方法:配置文件中加入如下语句:

<!--要访问的数据库IP地址、端口号、数据库名称、数据库登录名、密码。遇到乱码 加上Encoding-->

<connectionStrings>

<add name="postgre" connectionString="PORT=5432;DATABASE=Demo;HOST=localhost;PASSWORD=root;USER ID=postgres" />
</connectionStrings>

在代码中获取配置文件中连接字符串:
string connstr =ConfigurationManager.ConnectionStrings["postgre"].ToString();

2、在代码中配置的方法:

string ConStr = @"PORT=5432;DATABASE=Demo;HOST=localhost;PASSWORD=root;USER ID=postgres" ; 

2.2 建立连接

NpgsqlConnection SqlConn = new NpgsqlConnection(ConStr);

2.3 使用DataAdapter查询,返回DataSet

public DataSet ExecuteQuery(string sqrstr)
        {
            DataSet ds = new DataSet();
            try
            {
                using(NpgsqlDataAdapter sqldap = new NpgsqlDataAdapter(sqrstr, sqlConn))
                {
                    sqldap.Fill(ds);
                }
                return ds;
            }
            catch (System.Exception ex)
            {
                CloseConnection();
                return ds;
            }           
        }

2.4 增删改操作

public int ExecuteNonQuery(string sqrstr)   
        {
            try
            {
                sqlConn.Open();
                using (NpgsqlCommand SqlCommand = new NpgsqlCommand(sqrstr, sqlConn))
                {
                    int r = SqlCommand.ExecuteNonQuery();  //执行查询并返回受影响的行数
                    sqlConn.Close();
                    return r; //r如果是>0操作成功! 
                }                
            }
            catch (System.Exception ex)
            {
                CloseConnection();
                return 0;
            }
                    
        }

2.5 返回DataReader的查询

public DbDataReader GetReader( string cmdText)
 {
       if (sqlConn.State != ConnectionState.Open)
        sqlConn.Open();
        try
        {
            using (NpgsqlCommand cmd = new NpgsqlCommand(cmdText,sqlConn))
         {
               NpgsqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
               return sdr;
         }                            
       }
       catch(System.Exception ex)
       {
           CloseConnection();
            return null;
      }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值