从 .NET 连接到 DB2
如何从 Windows 上的 .NET 连接到 IBM DB2
引言
我想展示如何使用 IBM 托管提供程序从 C# 连接到 IBM DB2 Express。本文基于我搜索解决问题的过程中遇到的各种文章(和经验)的部分内容。
背景
不久前,我开始用 C# 开发一个客户端-服务器应用程序,它连接到 DB2 Express 服务器。当我开始寻找适合我的连接字符串时,我意识到我找到的任何东西都无法正常工作。网上有很多非常好的文章,但不知何故,连接字符串对我来说不起作用。花了一些时间,但我终于找到了解决我的问题的方法。我希望它对您有所帮助。
使用代码
获取 IBM Data Server Driver for
1. 您需要创建一个帐户(免费)才能从 IBM 下载任何东西。
2. 您可以从 IBM 网站上的以下地址下载所有内容
http://www-306.ibm.com/software/data/db2/express/download.html
请记住,此驱动程序需要您的计算机上已安装 .Net Framework。您不需要任何其他东西即可使其工作。这是一个非常快速且无痛的过程。
您需要安装 IBM .net 提供程序,当然还需要 DB2 服务器。我不会给您完整的代码,因为它与 MS SERVER Express 没有任何不同。
差异
唯一发生变化的是一些名称,例如。
SqlConnection
to
DB2Connection
等等。
该
DB2Connection, DB2Command, DB2Exception
都位于
IBM.Data.DB2.dll
您需要向您的项目添加一个引用才能访问它。
先决条件
在我可以远程连接之前,我需要在服务器上的 windows 防火墙中创建一个例外。这是一个简单的过程。只需添加一个您选择的名称的例外,并将 TCP 端口设置为 50000(这是 DB2 Express 的默认端口)。
现在是连接字符串
DB2Connection connect = new DB2Connection("Database=SAMPLE;UserID=db2admin;Password=yourPass;Server=xxx.xxx.xxx.xxx:50000");
Database - 设置您尝试连接的数据库的名称。
UserID - 这是您使用的用户 ID,“db2admin”是您安装 DB2 Express 时创建的默认用户名,除非您在安装期间更改了它。
Password - 这是您在安装期间为该用户指定的密码。
Server - 这是您指定服务器位置/名称的地方,以及可选的 TCP 端口。
最后一个参数让我头疼。有不同的使用方法,但在我的情况下,只有一种方法有效。
以下是您的选项
假设我们的服务器名称是“Elizabeth”。
选项 1
...Server=Elizabeth;
选项 2
...Server=Elizabeth:50000;
选项 3
...Server=XXX.XXX.XXX.XXX:50000
在前两种情况下,我收到了错误“无法解析 DNS”。只有最后一个选项有效。我想就是这样。如您所见,应用程序中代码的连接部分结构与 MS Server 版本几乎相同。
关注点
希望这可以帮助那些像我一样在 DB2 弹出错误信息时遇到问题的人 =]。
在不久的将来,我将添加一些关于如何编写 IBM 查询和存储过程以及如何将它们与 C# 一起使用的信息。我还将尝试展示 MS sp 和 DB2 sp 之间的区别。
历史
2008-05-25 本文的第一个版本。
2008-05-26 添加了关于如何获取驱动程序以及上述类所在位置的信息