";无效参数";IBM.Data.DB2.DB2Connection.open方法上的异常消息

本文关键字:quot 方法 异常 消息 open DB2 无效 参数 IBM Data DB2Connection | 更新日期: 2023-09-27 18:25:47

因此,在尝试连接到DB2数据库时,我收到了一条非常描述性的错误消息"Invalid Argument"。我可以使用SQUirrel(和JDBC)成功连接到它,使用JTopen JDBC驱动程序,连接字符串为"JDBC:as400://服务器;命名=系统;错误=完整;提示=否"

由于jdbc连接可以工作,我知道这是一个Db2.net连接器问题。但是错误消息"无效参数"阻碍了诊断从哪里开始的任何努力。

string connStr = "server=server;uid=user;pwd=password";
using(DB2Connection conn=new DB2Connection(connStr))
{
  conn.Open();
  //System.ArgumentException: Invalid argument
  //   at IBM.Data.DB2.DB2ConnPool.ReplaceConnectionStringParms(DB2Connection connection, String szValue, DB2ConnSettings& pSettings, DB2ConnSettingsInternal& pSettingsInternal, Boolean bAttach)
  //   at IBM.Data.DB2.DB2Connection.set_ConnectionString(String value)
  //   at IBM.Data.DB2.DB2Connection..ctor(String connectionString)
  //   at AuroraDAL_ConnectionTests.DB2ConnectionTests.try1() in C:'Projects'...'DB2ConnectionTests.cs:line 31
  //   at AuroraDAL_ConnectionTests.DB2ConnectionTests.Execute() in C:'Projects'...'DB2ConnectionTests.cs:line 19
  //   at AuroraDAL_ConnectionTests.Program.Main(String[] args) in C:'Projects'...'Program.cs:line 20
}

使用DB2.net连接器程序文件目录中的testconn20.exe,我尝试了几个选项,使用上面的第一个连接字符串,然后将简写键更改为其长手值,(uid更改为user-id,pwd更改为password,等等)

testconn20 server=server;database=database;user id=userid;password=password

其结果最终返回相同的"无效参数"异常:

Step 1: Printing version info
        .NET Framework version: 2.0.50727.5448
        64-bit
        DB2 .NET provider version: 9.0.0.2
        Capability bits: ALLDEFINED
        Build: 20090522
        Factory for invairant name IBM.Data.DB2 verified
        Elapsed: 0.089982
Step 2: Connecting using "server=-------;database=------;userid=------;password=------"
Invalid Argument Exception:
        Connection string should be of the type 'Database=db2db; Server=mymachine:60000; User ID=db2user; Password=xxxxxxxx

Test failed.

有人对我做错了什么有什么建议吗?提前付款。

";无效参数";IBM.Data.DB2.DB2Connection.open方法上的异常消息

我没有DB2经验,但仔细查看您的代码,我注意到您没有指定连接字符串的Database=和Server=中的PortNumber

IBM的站点似乎没有引导您访问其.net数据连接器的最新和最棒的部分。这个问题主要是通过彻底查找更新并找到他们的"修复中心"来解决的。这是他们保持更新和热修复的地方。然而,要得到合适的包裹并不容易。

最后我创建了正确的连接字符串:

Database=DBNAME;Server=IP:PORT;UID=USERNAME;Pwd=MYPASSWORD;LibraryList=LIBRARYNAME;PersistSecurityInfo=True;

有关更多参数,请参阅:DB2Connection.ConnectionString属性https://www.ibm.com/docs/en/db2/9.7?topic=properties-连接字符串

相关文章: