本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/FlashDragon/archive/2009/11/09/4789980.aspx
1、为了访问Postgresql数据库,需要从pgfoundry网站,下载Npgsql .Net Data ProvIDer for Postgresql的组件。 访问 URL:http://pgfoundry.org/frs/?group_ID=1000140 注:因为使用的是DotNet3.5,所以下载了Npgsql2.0.6-bin-ms.net3.5sp1.zip。 2、解压缩zip文件,把解压缩的目录中的Npgsql.dll、Mono.Security.dll复制到C#工程的obj目录下,然后在VS2008中 ,把 Npgsql.dll文件加入到References。 3、在需要使用Npgsql的C#文件头,加入如下的using语句。 vIEw plaincopy to clipboardprint? using Npgsql; using Npgsql; 4、创建一个Postgresql的数据库连接 vIEw plaincopy to clipboardprint? /* 用指定的connectionString,去实例化一个NpsqlConnection的对象*/ string connectionString = "Server=127.0.0.1;Port=5432;User ID=test;Password=test;Database=testdb;" NpgsqlConnection conn = new NpgsqlConnection(string connectionString); // 打开一个数据库连接,在执行相关sql之前调用 conn.open(); //关闭一个数据库连接,在执行完相关sql之后调用 conn.Close(); /* 用指定的connectionString,去实例化一个NpsqlConnection的对象*/ string connectionString = "Server=127.0.0.1;Port=5432;User ID=test;Password=test;Database=testdb;" NpgsqlConnection conn = new NpgsqlConnection(string connectionString); // 打开一个数据库连接,在执行相关sql之前调用 conn.open(); //关闭一个数据库连接,在执行完相关sql之后调用 conn.Close(); 5、用NpgsqlCommand.ExecuteScalar()方法获得唯一值的检索结果 vIEw plaincopy to clipboardprint? try { string sql = "select count(*) from test"; conn.open(); NpgsqlCommand objCommand = new NpgsqlCommand(sql,conn); int count = Convert.ToInt32(objCommand.ExecuteScalar()); } finally { conn.Close(); } try { string sql = "select count(*) from test"; conn.open(); NpgsqlCommand objCommand = new NpgsqlCommand(sql,conn); int count = Convert.ToInt32(objCommand.ExecuteScalar()); } finally { conn.Close(); } 6、用NpgsqlCommand.ExecuteReader() 方法获得一个结果集的检索结果(conn的Open和Close调用省略) vIEw plaincopy to clipboardprint? string sql = "select * from test"; NpgsqlCommand objCommand = new NpgsqlCommand(sql,conn); NpgsqlDataReader dr = command.ExecuteReader(); while(dr.Read()) { for (i = 0; i < dr.FIEldCount; i++) { Console.Write("{0} \t",dr[i]); //获得字段名 } int testID = dr["ID"]; // 获得指定字段的值。(ID是test表的一个字段) …… Console.Writeline(); } dr.Close(); string sql = "select * from test"; NpgsqlCommand objCommand = new NpgsqlCommand(sql,conn); NpgsqlDataReader dr = command.ExecuteReader(); while(dr.Read()) { for (i = 0; i < dr.FIEldCount; i++) { Console.Write("{0} \t",dr[i]); //获得字段名 } int testID = dr["ID"]; // 获得指定字段的值。(ID是test表的一个字段) …… Console.Writeline(); } dr.Close(); 7、用NpgsqlCommand.ExecuteNonquery()方法对指定表进行添加、更新和删除一条记录的 *** 作 添加记录: vIEw plaincopy to clipboardprint? string sql = "insert test values (1,200)"; NpgsqlCommandobjCommand = new NpgsqlCommand(sql,conn); objCommand.ExecuteNonquery(); string sql = "insert test values (1,200)"; NpgsqlCommandobjCommand = new NpgsqlCommand(sql,conn); objCommand.ExecuteNonquery(); 更新记录 vIEw plaincopy to clipboardprint? sql = "update test set price=300 where ID=1"; NpgsqlCommandobjCommand = new NpgsqlCommand(sql,conn); objCommand.ExecuteNonquery(); sql = "update test set price=300 where ID=1"; NpgsqlCommandobjCommand = new NpgsqlCommand(sql,conn); objCommand.ExecuteNonquery(); 删除记录 vIEw plaincopy to clipboardprint? sql = "delete from test where ID=1"; NpgsqlCommandobjCommand = new NpgsqlCommand(sql,conn); objCommand.ExecuteNonquery(); sql = "delete from test where ID=1"; NpgsqlCommandobjCommand = new NpgsqlCommand(sql,conn); objCommand.ExecuteNonquery(); 8、用NpgsqlDataAdapter.Fill方法,把检索的结果集放到DataSet object中,这样可以使用DataSet object设置 DotNet的DataGrIDVIEw控件的DataSource属性,这样在DataGrIDVIEw中显示从表中取出的所有记录。 vIEw plaincopy to clipboardprint? string sql = "select ID,price from test"; DataSet ds = new DataSet(); NpgsqlDataAdapter objAdapter = new NpgsqlDataAdapter(sql,conn); objAdapter.Fill(ds,"a"); //“a”这个表是自定义的 dgvBaseResult.DataSource = ds.tables["a"]; //dgvBaseResult是DataGrIDVIEw的一个Object。 string sql = "select ID,price from test"; DataSet ds = new DataSet(); NpgsqlDataAdapter objAdapter = new NpgsqlDataAdapter(sql,conn); objAdapter.Fill(ds,"a"); //“a”这个表是自定义的 dgvBaseResult.DataSource = ds.tables["a"]; //dgvBaseResult是DataGrIDVIEw的一个Object。 注:SQL语句设置也可以用下面的语句 objAdapter.SelectCommand.CommandText = sql;
总结以上是内存溢出为你收集整理的.NET 访问PostgreSQL数据库全部内容,希望文章能够帮你解决.NET 访问PostgreSQL数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)