IBM DB2数据提供程序 - 如何在运行时更改用户名和密码?

时间:2012-07-12 16:28:38

标签: .net visual-studio-2010 dataset informix

当我在Visual Studio中使用DB2数据提供程序创建Designer生成的DataSet时,我被问到是否要将敏感信息存储在ConnectionString对象中。

碰巧,我没有,因为我想强迫用户输入他们自己的用户名和密码,以评估他们运行程序的权限。

此时由Visual Studio生成的ConnectionString是ReadOnly。

如果ConnectionString是Readonly,我如何设置ConnectionString提供的用户名和密码?

我显然缺少某些东西,但我在网上找到的所有解决方案都失败了,连接DLL未被找到,连接突然与其连接类型不匹配( TCP / IP)及其通信API(SOCKETS)。这里包含错误是为了表示怀疑:

ERROR [08001] [IBM] SQL30081N  A communication error has been 
detected. Communication protocol being used: "TCP/IP".
Communication API being used: "SOCKETS".  Location where 
the error was detected: "192.168.101.243".
Communication function detecting the error: "connect".
Protocol specific error code(s): "10061", "*", "*".  SQLSTATE=08001

Stackoverflow,我放弃了。我做错了什么?

编辑:抱歉我的问题很糟糕。我在软件中有一个工作连接字符串。其形式如下:

“Database = dbName; User ID = admin ; Password = adminPassword ; Server = 192.168.101.111:1111”

这个connectionString运行正常,没问题,一切都很好。

当我尝试在运行时将connectionString更改为:

时,会出现问题

“数据库= dbName;用户ID = 用户;密码= userPassword ;服务器= 192.168.101.111:1111”

我正在寻找的是这个问题的答案:“如何在运行时更改设计器生成的connectionString?”因为到目前为止我所尝试的一切显然是错误的。

2 个答案:

答案 0 :(得分:1)

我建议您验证您尝试访问的Informix IDS服务器上的NETTYPE = onsoctcp。

答案 1 :(得分:1)

阅读了Frank Computer提供的链接后,我相信我发现了以下内容:

我试图对设计器生成的ConnectionString对象进行更改,从而做错了。

我正在寻找的实际答案是连接字符串应该在每个tableAdapter的基础上设置:

Dim x As New DataSet1_TableAdapters.myTableAdapter
x.Connection.ConnectionString = newConnectionString

Designer生成的connectionString用于TableAdapters的Designer生成的构造函数,它的存在避免了NullReferenceException。正确的程序(据我现在发现)是允许使用此不正确的 connectionString,然后在实际尝试使用之前将其更改为正确的 connectionString连接。

公平地说,使用这个ConnectionString可以达到不破坏设计器生成的代码的目的,但正如我所说,基本上是一个旨在让你开始解决错误问题的陷阱如果您需要更改连接字符串。