用Visual C#中实现DB2数据库编程(转)
发表于:2007-06-30来源:作者:点击数:
标签:
在Visual Studio.NET Beta 1版本中访问IBM DB2等非SQL Server 数据库 通常是使用ADO.NET的ODBC方法,而在Beta 2中则改用OLE DB方式存取数据库。 Beta1中连接字符串主要需声明数据库的ODBC的DNS名字,但Beta 2中的OLE DB连接的字符串就较复杂了,使用的类也不
在Visual Studio.NET Beta 1版本中访问IBM DB2等非
SQL Server数据库通常是使用ADO.NET的ODBC方法,而在Beta 2中则改用OLE DB方式存取数据库。
Beta1中连接字符串主要需声明数据库的ODBC的DNS名字,但Beta 2中的OLE DB连接的字符串就较复杂了,使用的类也不相同。由于DB2等数据库在大型机等应用中使用非常广泛,.NET自然会全力支持此类编程
开发,为此,下文将逐步阐述OLE DB的DB2开发。
OLE DB for DB2驱动
首先,Visual Studio.NET和
Windows 2000 Server中并未直接提供DB2的OLE DB驱动,因此需
下载Microsoft Host Integration Server 2000软件,该软件包中含OLE DB Provider and ODBC driver for DB2,需下载Server端软件包,并在安装时选择安装Data Integration,安装完成后就可使用其OLE DB的DB2驱动了。
设置数据库连接
首先,我们需配置好DB2的客户端设置,打开视图选单项中的
服务器资源管理器,在其数据连接中新增一个连接,指定程序选项时选择Microsoft OLE DB Provider for DB2,下一步连接选项中,填写如下信息:
Data Source:
QCDB(请酌情修改)
Network:TCP/IP
IP Address:数据库服务器地址
Network Port:DB2服务端口
Username:数据库访问权限的用户名
Password:该用户口令
Database initial Catalog:QCDB
Package collection:QCDB
default schema:Userid
下一步高级选项中选各自国家语言对应的code page及
CCSID,最后按确认键完成创建连接。
假设QCDB这个DB2数据库中有一名为address的新数据表,其包含四个字段:name、email、age和address,我们可用服务器资源管理器打开上述连接及该数据表,可输入数条中文记录,确定中文字符能否正常显示。
为项目增加数据库连接
用Visual Studio新建一个ASP.NET项目,激活服务器资源管理器的上述连接,用鼠标将该连接拖至新建的Web Form上,则OLE DB需要的连接字符参数全部自动写入Web Form程序中,上述连接生成的语句如下:
this.oleDbConnection1.ConnectionString = @"Provider=DB2OLEDB;
Cache Authentication=False;
Integrated Security="""";
Password=freebsd9;
Persist Security Info=True;
User ID=userid;Initial Catalog=
qcdb;
Data Source=qcdb;Mode=ReadWrite;
Extended Properties="""";
APPC Remote LU Alias="""";
APPC Local LU Alias="""";
APPC Mode Name=QPCSUPP;
Network Transport Library=TCPIP;
Host CCSID=37;PC Code Page=1282;
Network Address=172.23.169.1;
Network Port=4444;Package Collection=qcdb;
Default Schema=userid;Alternate TP Name="""";
Process Binary as Character=False;
Units of Work=RUW"
用服务器资源管理器工具生成连接可避免错写各种参数,从而可快速地实现数据库连接。
Web Form显示数据库数据
为Web Form新增一个OleDbDataAdapter类的对象oleDbDataAdapter1,为其选择数据连接时选上面建立的连接如:qcdb.qcdb.userid,选择使用SQL语句,生成SQL语句如:Select ?from address,最后提示完成。再为Web Form新增一个DataSet并命名为dataSet1用来放查询得到的数据。新增一个显示数据用的DataGrid命名为DataGird1,最后在Web Form的程序段中的Page_Init部分中增加如下代码:
oleDbConnection1.Open();
//打开数据库连接
oleDbDataAdapter1.Fill(dataSet1,"Address");
//将得来的数据填入dataSet
DataGrid1.DataBind();
//绑定数据
oleDbConnection1.Close();
//关闭连接
编译运行后,可见address表中内容被显示于Web Form的DataBrid中。OleDbConnection1等属性设置都在生成的Web Form设计代码中。
增加数据库数据
在Web Form上新增对应字段数量个数的TextBox,及一个button,为该按键增加Click响应事件代码如下:
this.oleDbInsertCommand1.CommandText = "INSERT INTO ADDRESS(NAME, EMAIL, AGE, ADDRESS) VALUES (@#"+TextBox1.Text+"@#,@#"+TextBox2.Text+"@#,@#"+TextBox3.Text+"@#,@#"+TextBox4.Text+"@#)";
oleDbInsertCommand1.Connection.Open();
//打开连接
oleDbInsertCommand1.ExecuteNonQuery();
//执行该SQL语句
oleDbInsertCommand1.Connection.Close();
//关闭连接
实际编程中,我们需注意SQL语句的单引号问题以及数字和字符串处理问题。
删除数据库数据
在Web Form上新增一个TextBox5及一个按键,要执行删除时,在TextBox5中填入要删除记录的name字段的值,然后按该按键执行删除。该按键代码如下:
System.Data.OleDb.OleDbCommand oleDeleteCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbDataAdapter1.DeleteCommand = oleDeleteCommand1;
//声明为oleDb命令
oleDeleteCommand1.CommandText="DELETE FROM ADDRESS WHERE NAME=@#"+TextBox5.Text+"@#";
oleDeleteCommand1.Connection = this.oleDbConnection1;
//指明连接
oleDeleteCommand1.Connection.Open();
//打开连接
oleDeleteCommand1.ExecuteNonQuery();
//执行SQL语句
oleDeleteCommand1.Connection.Close();
//关闭连接
对于增加、更新和删除操作后的DataGrid刷新,可执行类似的Select SQL语句即可。
上述代码可供各种非SQL Server数据库编程参考和使用,微软为此提供了如OLE DB Provider for
Oracle、AS/400和VSAM等众多驱动,OLE DB方式确实提供了较ODBC方式更为广泛的数据存取范围,如可存取A
clearcase/" target="_blank" >ccess库中的数据、邮件系统中的数据、Web上的文本及图形、目录服务等等,符合ODBC标准的数据源就是符合OLE DB标准的数据存储的子集,而且OLE DB的API是符合COM标准和基于对象的API,这些都是较原ODBC方式有大幅改进,从而为综合的数据集成处理提供了更广泛的支持。
通过以上讲解,笔者希望使读者初步了解在Visual Studio.NET中,以DB2为后台数据库时应用系统的开发步骤,也希望读者举一反三,领会思想和方法,以便更好地应用到自己的系统开发中。
上述程序在中文Windows 2000 Server、IBM DB2和Visual Studio.NET Beta 2环境中编译并正常运行。
原文转自:http://www.ltesting.net