首页 > 数据库 > DB2 > 正文

如何在Visual C#中实现DB2数据库编程

2020-03-09 21:23:57
字体:
来源:转载
供稿:网友
  在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方式更为广泛的数据存取范围,如可存取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环境中编译并正常运行。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表