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

 

 

 
        

  

 

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM