1

DB2データプロバイダーを使用して、デザイナーが生成したDataSetをVisual Studioで作成すると、機密情報をConnectionStringオブジェクトに格納するかどうかについて質問されます。

たまたま、プログラムを実行する権限を評価するために、ユーザーに自分のユーザー名とパスワードの入力を強制したいので、私はしません。

この時点でVisualStudioによって生成されるConnectionStringは読み取り専用です。

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、私はあきらめます。私は何が間違っているのですか?

編集:私の問題をうまく組み立てていないことをお詫びします。ソフトウェアに機能する接続文字列があります。これは次の形式です。

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

このconnectionStringは正常に機能し、問題はありません。すべてが良好です。

実行時にconnectionStringを次のように変更しようとすると、問題が発生します。

"Database = dbName; User ID = user ; Password = userPassword ; Server = 192.168.101.111:1111"

私が探しているのは、「実行時にデザイナーが生成したconnectionStringに変更を加えるにはどうすればよいですか?」という質問に対する答えです。私がこれまでに試したことはすべて明らかに間違っていたからです。

4

2 に答える 2

1

アクセスしようとしているInformixIDSサーバー上のNETTYPE=onsoctcpかどうかを確認することをお勧めします。

于 2012-07-12T21:59:32.077 に答える
1

フランクコンピュータが提供するリンクを読んだ後、私は次のことを発見したと思います。

デザイナーが生成したConnectionStringオブジェクトに変更を加えようとして、間違ったことをしていました。

私が探していた実際の答えは、接続文字列はテーブルごとに次の形式で設定する必要があるというものでした。

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

Designerによって生成されたconnectionStringは、TableAdaptersのDesigner生成コンストラクターで使用され、その存在によってNullReferenceExceptionが回避されます。正しい手順(私が今発見した限り)は、この誤ったconnectionStringの使用を許可し、実際に接続を使用する前に、正しいconnectionStringに変更することです。

公平に言えば、このConnectionStringを配置することは、デザイナーが生成したコードを壊さないという目的を果たしますが、それ以外の場合は、基本的に、接続文字列を変更する必要がある場合に間違った問題の解決を開始するように設計されたトラップです。 。

于 2012-07-13T09:21:05.730 に答える