ASP.Net2.0连接PostgreSQL数据库<转>
PostgreSQL 是一种非常先进的对象-关系型数据库管理系统(ORDBMS),目前功能最强大,特性最丰富和最先进的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。自从MySQL 被Sun 收购后,相信很多对该收购不放心的朋友会转而看好PostgreSQL 的前途。之前我曾经博客中介绍过Ubuntu中通过源码安装编译安装PostgreSQL。在ASP.Net中使用PostgreSQL数据库作为后端数据存储,连接方法有以下两种:
一、采用商业组件的方式PostgreSQLDirect .NET
目前商业组件使用较多的是PostgreSQLDirect .NET,不过这个需要付费,最便宜的标准版网上报价也要1000元人民币。
PostgreSQLDirect .NET是一款为Microsoft .NET Framework提供直接PostgreSQL数据库连接的数据发生器控件。它完全基于ADO.NET方法,因此您完全可以采用标准ADO.NET数据提供的方法来使用它。
安装之后会在Visual Studio 2005工具栏出现PostgreSQLDirect组件包含了PgSqlConnection PgSqlCommand PgSqlDataAdapter 等控件(如下图),然后在项目里添加引用:CoreLab.Data和CoreLab.PostgreSql,可以拖放控件连接数据库,使用方法2005的和自带控件基本相同。也可以写代码连接数据库,具体代码如下:
PgSqlDataSet ds = new PgSqlDataSet();
string sql = "SELECT * FROM test WHERE tid=3000";
PgSqlConnection con = new PgSqlConnectio("user id=username;Password=pwd;host=hostname;database=test");
PgSqlDataAdapter da = new PgSqlDataAdapter(sql, con);
da.Fill(ds);
this.dataGridView1.DataSource = ds;
this.dataGridView1.DataMember = ds.Tables[0].ToString();
安装PostgreSQLDirect .NET之后的工具栏
二、使用开源组件Npgsql
Npgsql是一个为开源数据库PostgreSQL提供.NET Framework平台下数据驱动服务的库函数程序集(.NET Data Provider),它允许用户在.NET Framework平台下建立用于访问PostgreSQL数据库的应用。
解压后将其中的两个dll文件复制到应用程序的Bin目录下,然后在项目里添加引:Mono.Security和NPgSQL,在代码里添加using NpgSQL;具体代码如下:
string sql = "SELECT * FROM test WHERE tid=3000";
NpgsqlConnection con = new NpgsqlConnection("server=hostname;uid=username;pwd=pwd;database=test");
NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql,con);
DataSet ds = new DataSet();
da.Fill(ds);
this.dataGridView1.DataSource = ds;
this.dataGridView1.DataMember = ds.Tables[0].ToString();