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方式更为广泛的数据存取范围,如可存取access库中的数据、邮件系统中的数据、web上的文本及图形、目录服务等等,符合odbc标准的数据源就是符合ole db标准的数据存储的子集,而且ole db的api是符合com标准和基于对象的api,这些都是较原odbc方式有大幅改进,从而为综合的数据集成处理提供了更广泛的支持。
通过以上讲解,笔者希望使读者初步了解在visual studio.net中,以db2为后台数据库时应用系统的开发步骤,也希望读者举一反三,领会思想和方法,以便更好地应用到自己的系统开发中。
上述程序在中文windows 2000 server、ibm db2和visual studio.net beta 2环境中编译并正常运行。
新闻热点
疑难解答