db2数据库如何连接

db2数据库如何连接,第1张

1.首先将数据库服务端的数据库映射到客户端(因为使用ODBC的原因)

映射命令如下:

Db2cmd

Db2

//将远程节点192.168.80.207:50001映射为node207本地节点

catalog tcpip node node207 remote 192.168.80.207 server 50001

//映射数据库zcldb到本地node207节点

catalog database zcldb at node node207

2.新增ODBC,连接到本地DB2映射数据库

3.应用程序连接ODBC

连接字符串:

<add name="DB2ConnectionString" connectionString="driver={IBM DB2 ODBC DRIVER}DSN=localdbnameUID=userDBALIAS=localdbnameMODE=SHAREPWD=password" providerName="System.Data.Odbc"/>

c#连接DB2一共有3种方式

分别为

一、ODBC

OdbcConnection odbcConn = new OdbcConnection("Driver={IBM DB2 ODBC

DRIVER}Server=localhostDSN=TESTDBUID=usernamePWD=pwdProtocol=TCPIP")

odbcConn.Open()

二、OLE DB

[C#]

OleDbConnection con = new OleDbConnection("Provider=IBMDADB2" +

"Data Source=sampleUID=useridPWD=password" )

con.Open()

参考地址

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.ms.doc/doc/c0011825.html

这里贴一个我写的连接DB2 返回一个oledbdatareader的类

using System

using System.Collections.Generic

using System.Data.OleDb

public class DB2Helper : IDisposable

{

/// <summary>

/// <DB2>执行查询语句,返回SqlDataReader

/// </summary>

/// <param name="strSQL"><DB2>查询语句</param>

/// <returns>SqlDataReader</returns>

private bool m_disposed//is or not disposed true or flase

OleDbConnection cn=null

OleDbCommand DB2Command = null

private string strQuerySQL=""

public OleDbDataReader ExecuteReaderDB2(string strSQL)

{

strQuerySQL = strSQL

DB2Command = new OleDbCommand(strQuerySQL, cn)

OleDbDataReader rdr = null

try

{

cn.Open()

rdr = DB2Command.ExecuteReader()

}

catch (System.Data.SqlClient.SqlException e)

{

throw new Exception(e.Message)

}

return rdr

}

public DB2Helper()

{

string DB2ConnectionString = @"Provider=IBMDADB2.1Location=xxx.xxx.xxx.xxx:xxxxData Source=TestDB" +

" Persist Security Info=TrueUser ID=xxxxPassword=xxxxCurrentSchemaTestDB"

cn = new OleDbConnection(DB2ConnectionString)

DB2Command = new OleDbCommand()

}

public void Dispose()

{

Dispose(true)

GC.SuppressFinalize(this)

}

protected virtual void Dispose(bool disposing)

{

if (!m_disposed)

{

if (!disposing)

{

// Release unmanaged resources

DB2Command.Connection.Close()

DB2Command = null

cn.Close()

cn = null

}

// Release managed resources

m_disposed = true

}

}

~DB2Helper()

{

Dispose(false)

}

}

三、使用IBM提供的IBM.data.DB2.DLL 的接口进行连接

using IBM.data.DB2

DB2Connection cn = new DB2Connection(

"Database=TESTUserID=db2adminPassword=passwordServer=IS500")

DB2Command myDB2Command = new DB2Command(myInsertQuery)

myDB2Command.Connection = cn

myConn.Open()

myDB2Command.ExecuteNonQuery()

myConn.Close()

其中IBM.data.DB2.DLL在DB2客户端里有

(大概位置是 in X:/Program Files/IBM/SQLLIB/BIN/netf11 )

参考地址

http://publib.boulder.ibm.com/infocenter/db2luw/v8//index.jsp?topic=/com.ibm.db2.udb.dndp.doc/htm/frlrfIBMDataDB2DB2ConnectionClassTopic.htm

虽然没有完全测试完毕,,第二,三种方法,,我确认是必须安装DB2客户端才有办法使用

而且第三种,还必须版本足够高才能正常使用

假设A机使用的是SQL

server吧,所以把sql

server装在A机。(我现在只会用sql

server。。),那你A机的数据库就要启用它的协议,创建或是启用sa账户,这样,其他机子就能访问A机的DB2,然后C机在连接数据库时,数据库的地址就是A机的IP地址,(假如是局域网连接的,就填写A机的本地连接的IP),账户密码就是启用的SA,或是创建的用户(这个用户必须设定权限,简单点就把它设置成sysadmin),这样子,C机就能访问A机的数据库DB2,在做网页或系统的时候,调用数据。C机做好网站或系统后,生成网站,把网站挂在IIS上,稍微设置下,不懂百度下,就几个地方,我就不打出来了。这个样子,B机就不用去连接DB2。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9952805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存