这篇文章给大家介绍C#中怎么访问postgresql数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联服务项目包括颍州网站建设、颍州网站制作、颍州网页制作以及颍州网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,颍州网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到颍州省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
为了访问PostgreSQL数据库,需要采用Npgsql包,.Net Data Provider for Postgresql的组件。在C#中通过调用这个封装好的库来访问PostgreSQL。
解压缩zip文件,把解压缩的目录中的Npgsql.dll、Mono.Security.dll复制到C#工程的obj目录下,然后在VS2008中,把 Npgsql.dll文件加入到References。
在需要使用Npgsql的C#文件头,加入如下的using语句。
using Npgsql;
创建一个PostgreSQL的数据库连接
/* 用指定的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();
用NpgsqlCommand.ExecuteScalar()方法获得唯一值的检索结果
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(); }
用NpgsqlCommand.ExecuteReader() 方法获得一个结果集的检索结果(conn的Open和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(); 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();
用NpgsqlCommand.ExecuteNonQuery()方法对指定表进行添加、更新和删除一条记录的操作
添加记录: 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(); 更新记录 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(); 删除记录 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();
用NpgsqlDataAdapter.Fill方法,把检索的结果集放到DataSet object中,这样可以使用DataSet object设置。DotNet的DataGridView控件的DataSource属性,这样在DataGridView中显示从表中取出的所有记录。
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;
关于C#中怎么访问postgresql数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。