DB2 9 运用开拓(733 检修)认证指南,第 6 部分: .NET 编程(3)
完成 DB2 与 .NET 框架的无缝接口
跟尾到数据库
在本节中,您将进修如何从 .NET 运用递次中跟尾到 DB2 数据库。
操纵 DB2 .NET Data Provider 创立跟尾
当操纵 DB2 .NET Data Provider 时,可以颠末议定 DB2Connection
类创立数据库跟尾。起首,必需创立一个存储跟尾参数的字符串。上面是一个跟尾字符串的示例:
String connectString = "Database=SAMPLE";
当操纵该字符串时,将测验考试跟尾到 SAMPLE 数据库:
清单 1. 跟尾字符串
String cs = "Server=draco:50000;Database=SAMPLE;UID=db2admin;PWD=1a2b3c4d; Connect Timeout=30"; // When used, attempts to connect to the SAMPLE database on the server // 'draco' through port 50000 using 'db2admin' and '1a2b3c4d' as the user id // and password respectively. If the connection attempt takes more than thirty // seconds, the attempt will be terminated and an error will be generated.
要创立数据库跟尾,可将 connectString
通报给 DB2Connection
构造函数。 然先操纵 DB2Connection
对象的 Open()
门径正式地跟尾到 connectString
中标识的数据库。
上面显现怎样在 C# 中跟尾到数据库:
清单 2. 在 C# 中跟尾到数据库
String connectString = "Database=SAMPLE"; DB2Connection conn = new DB2Connection(connectString); conn.Open(); return conn;
回页首
用 ADO.NET 公共基类创立跟尾
.NET 框架 2.0 供给了一个名为 System.Data.Common
的称号空间,此中包含一组可供任何 .NET 数据库供给者共享的基类。 这可以供给一个坚固的编程接口,从而为通用 ADO.NET 数据库运用递次开拓门径供给方便。在 .NET Framework 2.0 中,DB2 .NET Data Provider 中首要的类是从 System.Data.Common
基类肩承当任过去的。因此,generic ADO.NET 运用递次颠末议定 DB2 .NET Data Provider 来操纵数据库。上面的 C# 代码演示了创立数据库跟尾的通用门径:
清单 3. 创立数据库跟尾
DbProviderFactory factory = DbProviderFactories.GetFactory("IBM.Data.DB2"); DbConnection conn = factory.CreateConnection(); DbConnectionStringBuilder sb = factory.CreateConnectionStringBuilder(); if( sb.ContainsKey( "Database" ) ) { sb.Remove( "database" ); sb.Add( "database", "SAMPLE" ); } conn.ConnectionString = sb.ConnectionString; conn.Open();
任何通用 ADO.NET 运用递次都从 DbProviderFactory
对象劈脸。该对象创立 .NET 数据供给者对象操纵特定命据库产物的通用实例,例如跟尾、数据适配器、下令和数据阅读器。在清单 3 中的例子中,通报给 GetFactory()
门径的 IBM.Data.DB2
字符串用心地标识 DB2 .NET Data Provider,随后初始化一个 DbProviderFactory
实例,后者创立特定于 DB2 .NET Data Provider 的数据库供给者实例。DbConnection
对象可以跟尾到 DB2 眷属数据库,例如 DB2Connection
对象,它实际上肩承当任自 DbConnection
。
颠末议定操纵 DbConnectionStringBuilder
类,可感觉数据供给者确定跟尾字符串关键字,并天生一个定制的跟尾字符串。清单 3 中的代码反省 DB2 .NET Data Provider 中可否存在一个名为database 的关键字。如果存在,则该代码天生一个用于跟尾到 SAMPLE 数据库的跟尾字符串。
回页首
跟尾池
当第一次翻开到 DB2 数据库的跟尾时,会同时创立一个跟尾池。跟尾被关闭时,就会进入跟尾池,以备其它需要跟尾的运用递次操纵。默许状态下,DB2 .NET Data Provider 将启用跟尾池。 可以操纵 Pooling=false
跟尾字符串键/值对关闭跟尾池。
可以颠末议定设置上面的跟尾字符串关键字来控制跟尾池的行为:
- 最小和最年夜池年夜小(min pool size, max pool size)
- 跟尾在前往到跟尾池之前闲置的时辰长度(connection lifetime)
- 当关闭往后跟尾时,可否将其放入跟尾池(connection reset)
回页首
数据库跟尾:示例代码
清单 4 演示了如何从 ADO.NET 运用递次中跟尾到 DB2:
清单 4. 从 ADO.NET 运用递次中跟尾到 DB2
using System; using System.Data; using System.IO; using IBM.Data.DB2; >
在编译该递次之前,必需确保
INCLUDE
状态变量中包含�2PATH%\INCLUDE
作为第一个目次。为此,更新 Microsoft Visual C .NET 的状态设置文件,该文件的地位为 C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\vsvars32.bat。该文件包含以下下令:
@set INCLUDE=%MSVCDir%\ATLMFC\INCLUDE;...; %FrameworkSDKDir%\include;%INCLUDE%
将
%INCLUDE%
(用于设置�2PATH%\INCLUDE
途径)从列表的结尾挪动到开首地位,如下所示:
@set INCLUDE=%INCLUDE%;%MSVCDir%\ATLMFC\INCLUDE;...; %FrameworkSDKDir%\include
为了编译该代码,将该递次放入 �2PATH%\samples\.NET\cs,这个目次包含脚本 bldapp.bat。然后,发出以下下令:
bldapp ConnDb
要运转该递次,发出以下下令:
ConnDb
版权声明: 原创作品,许诺转载,转载时请务必以超链接情势标明文章 原始出处 、作者信息和本声明。不然将追究法例责任。