zoukankan      html  css  js  c++  java
  • 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.dll和Mono.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;
                }
                        
            }
    View Code

       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;
                }
            }  
    View Code
    
    

      

     
     
     
  • 相关阅读:
    python 安装Crypto.Ciphe
    ProxyPool 爬虫代理IP池配置采坑
    2020渗透测试面试问题大全
    Windows Server 2016抓取明文密码
    应用安全 – 端口漏洞整理
    .net core docker+ gogs + jenkins 自动化部署
    .net HttpClient 回传实体帮助类
    .net list转树状结构
    ABP 临时禁用TenantId IsDelete过滤
    ABP 使用cache缓存
  • 原文地址:https://www.cnblogs.com/PowerOfHeart/p/7138003.html
Copyright © 2011-2022 走看看