1

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

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

此时 Visual Studio 生成的 ConnectionString 为 ReadOnly。

如果 ConnectionString 是只读的,如何设置 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,我放弃了。我究竟做错了什么?

编辑:抱歉我的问题很糟糕。我在软件中有一个可用的连接字符串。这是以下形式:

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

这个connectionString工作正常,没有问题,一切都很好。

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

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

我正在寻找的是对以下问题的回答:“如何在运行时更改设计器生成的连接字符串?” 因为到目前为止我所尝试的一切显然都是错误的。

4

2 回答 2

1

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

于 2012-07-12T21:59:32.077 回答
1

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

通过尝试更改设计器生成的 ConnectionString 对象,我做错了事。

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

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

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

公平地说,有这个 ConnectionString 的目的是为了不破坏设计器生成的代码,但是,正如我所说,基本上是一个陷阱,如果你需要对连接字符串进行更改,它可以让你开始解决错误的问题.

于 2012-07-13T09:21:05.730 回答