DB2数据库开发连接字符串
先参考Database connect string的网站,这里会介绍一些连接数据库的语句。
有关ODBC配置及官网的介绍可参考博客。
DB2相关的下载可参考 IBM DB2下载及相关资料
如何安装和配置ODBC参考https://blog.csdn.net/jaycee_ma/article/details/76153238
https://www.cnblogs.com/lezhou2014/p/4961899.html
1)使用IBM OLE DB Provider for db2
Provider=IBMDADB2.DB2COPY1;Password=1;Persist Security Info=True;User ID=db2admin;Data Source=SAMPLE;Location=SHARK-LABTOP:50000
2) 使用IBM.DB2.Data.dll 基于.NET FRAMEWORK 2.0
Password=1;User ID=db2admin;Database=SAMPLE;Server=SHARK-LABTOP:50000或者PWD=1;UID=db2admin;Database=SAMPLE;Server=SHARK-LABTOP:50000
在网上看到的写成如: Dim strConnectionString As String
strConnectionString = “Provider=IBMDADB2; DSN=Test;server=xx.xx.xx.xx; User ID=db2admin;Password=db2password”
OleDbConnection (.NET) 微软公司提供的驱动
//TCP/IP
Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=XXX.XXX.XXX.XXX;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=myUsername;Password=myPassword;
//APPC
Provider=DB2OLEDB;APPC Local LU Alias=MyAlias;APPC Remote LU Alias=MyRemote;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=myUsername;Password=myPassword;
IBM提供的OLE DB适配器 OLE DB
//TCP/IP Provider=IBMDADB2;Database=myDataBase;Hostname=myServerAddress;Protocol=TCPIP;Port=50000; Uid=myUsername;Pwd=myPassword;
ODBC链接
//标准 Driver={IBM DB2 ODBC DRIVER};Database=myDataBase;Hostname=myServerAddress;Port=1234;Protocol=TCPIP;Uid=myUsername;Pwd=myPassword;
一、 C#教程之C#连接db2数据库的实现方法
通过OLE DB for DB2驱动
1 string strSql = @"select phone_no from no_store where id<5";
2 string strConn = "Provider=IBMDADB2;Data Source=数据库名;UID=用户名;PWD=密码;";
3 using (OleDbConnection conn = new OleDbConnection(strConn))
4 {
5 OleDbCommand cmd = new OleDbCommand(strSql, conn);
6 try
7 {
8 conn.Open();
9 OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
10 DataSet ds = new DataSet();
11 adp.Fill(ds);
12 DataTable dt = ds.Tables[0];
13 if (dt != null)
14 {
15 for (int i = 0; i < dt.Rows.Count; i++)
16 {
17 Console.WriteLine("电话" + i + ":" + dt.Rows[i][0].ToString());
18 }
19 }
20 }
21 catch (Exception ex)
22 {
23 Console.WriteLine(ex.Message);
24 }
25 }
26 Console.Read();
通过IBM提供的IBM.data.DB2.DLL
1 string strSql = @"select phone_no from no_store where id<5";
2 string strConn = "Database=数据库名;UID=用户名;PWD=密码;";
3 using (DB2Connection conn = new DB2Connection(strConn))
4 {
5 DB2Command cmd = new DB2Command(strSql, conn);
6 try
7 {
8 conn.Open();
9 DB2DataAdapter adp = new DB2DataAdapter(cmd);
10 DataSet ds = new DataSet();
11 adp.Fill(ds);
12 DataTable dt = ds.Tables[0];
13 if (dt != null)
14 {
15 for (int i = 0; i < dt.Rows.Count; i++)
16 {
17 Console.WriteLine("电话" + i + ":" + dt.Rows[i][0].ToString());
18 }
19 }
20 }
21 catch (Exception ex)
22 {
23 Console.WriteLine(ex.Message);
24 }
25 }
26 Console.Read();
小结
(1)两种方式的数据库操作对象可以参考c#连接sqlserver的数据库对象。
(2)如果db2数据库在远程服务器,连接字符串中的数据库名、用户名、密码为db2编目到本地的数据库名、用户名、密码。
(3)使用IBM.Data.DB2,必须引用该程序集。
二、VB链接DB2
1.Select 语句的注意事项
1)如果数据库为db2,则你所要查找的表前面要加上这个建表的用户名,
如,testTable这张表,我是通过系统登陆的帐号所建,为lixc.testTable;
我所使用查询的用户为admin,如果你只是写select * from testTable ,则
db2只是默认的查找admin.testTable,这张表不存在,所以应该写为:
select * from lixc.testTable
2)如果你连接数据库的url和driverName都是通过设置文件*.properties来读取的
话,则要注意: 如driverManager:com.ibm.db2.jcc.DB2Driver,如果其后面更有
空格的话,可能在java运行的时候会出现,com/ibm/db2/jcc/DB2Driver这个class文件
未找到的错误。我原来遇见这个情况,如果直接在Class.forName(“driverName”).newInstance();
测试成功,可是读取设置文件Class.forName(driverStr).newInstance();则是报以上错误。
后来将设置文件中后面的空格去掉,程式运行成功。
2. db2的jdbc连接用法:
1). 将 db2jcc.jar 和 db2jcc_license_cu.jar 设置在环境变量classpath下。
2). 将 db2jcc.jar 和 db2jcc_license_cu.jar复制在你所用的应用服务器中工程下的WEB-INF/lib包下
3). JDBC URL :jdbc:db2://tdurden:50000/SAMPLE
( where tdurden is the machine the DB2 database server resides on and where SAMPLE is the database instance – 50000 is the default DB2 port to connect to )
4). Driver Class field: com.ibm.db2.jcc.DB2Driver
5). Add a valid username and password in the username and password fields.
3.vb操作db2存储过程
Dim db2Conn As New DB2Conn()
db2Conn.cmd = db2Conn.con.CreateCommand()
db2Conn.cmd.CommandType = System.Data.CommandType.StoredProcedure
db2Conn.cmd.CommandText = "{ CALL DB2ADMIN.GENERATE_SPLITDATA_BY_PRECINCT(?) }"
Dim p1 As Odbc.OdbcParameter = db2Conn.cmd.CreateParameter()
p1.OdbcType = Odbc.OdbcType.Date
p1.Value = "2010-07-21"
db2Conn.cmd.Parameters.Add(p1)
db2Conn.cmd.ExecuteNonQuery()