【问题标题】:Asp.net C# DB2 connection stringAsp.net C# DB2 连接字符串
【发布时间】:2018-10-25 09:32:00
【问题描述】:

我正在使用 MVC 方法并尝试连接到 DB2。我已经使用 Mysql 成功获取了我的连接字符串,但是当我要连接到 DB2 时,我收到了以下错误消息:

Exception thrown: 'System.ArgumentException' in IBM.Data.DB2.dll
An exception of type 'System.ArgumentException' occurred in IBM.Data.DB2.dll but was not handled in user code
Invalid argument

错误出现在我的连接字符串代码上:

string constr = ConfigurationManager.ConnectionStrings["ConnStringDb2"].ConnectionString;
using (DB2Connection con = new DB2Connection(constr))

这是我在 web.config 中设置的连接字符串

  <connectionStrings>    
    <add name="ConnStringDb2" connectionString="DATABASE=DB;HOSTNAME=Myhost;PORT=50000;UID=user;PWD=pass;" />
  </connectionStrings>

我已经安装了以下:

IBM data client
IBM database add-ins

我是否缺少任何项目或需要添加到我的连接字符串中,或​​者我的连接格式是否无效。任何建议和cmets。 TIA。

【问题讨论】:

  • 您使用的是 OLE DB 还是 DB2 连接器提供程序?两种情况下指定的连接字符串可能不同。
  • 它是 DB2 连接器,检查我更新的错误消息。

标签: asp.net-mvc db2


【解决方案1】:

根据DB2 connection string listHOSTNAMEPORT 配置用于 OLE DB 提供程序。对于 .NET Framework 数据提供程序的使用,您应该尝试以下配置之一:

<!-- using hostname -->
<add name="ConnStringDb2" connectionString="SERVER=Myhost:50000;DATABASE=DB;UID=user;PWD=pass;" />

<!-- using server's IP address -->
<add name="ConnStringDb2" connectionString="SERVER=xxx.xxx.xxx.xxx:50000;DATABASE=DB;UID=user;PWD=pass;" />

如果您当前使用 OLE DB 提供程序,则需要设置 DB2 提供程序名称和您用于连接的协议:

<add name="ConnStringDb2" connectionString="PROVIDER=IBMDADB2;DATABASE=DB;HOSTNAME=Myhost;PORT=50000;PROTOCOL=TCPIP;UID=user;PWD=pass;" />

相关问题:How to connect to DB2?

【讨论】:

  • 酷它工作!我只是错过了连接字符串上的一些参数。
最近更新 更多