0

C# で記述された Windows フォーム アプリがあり、アプリの一部には、RDLC レポートと ReportViewer コントロールを使用するレポート フォームがあります。

レポートを作成するために、まずレポートごとに DataSet を作成し、DataSet に TableAdapter を追加しました。TableAdapter ウィザードを使用してレポートのクエリを指定し、App.Config で既に定義されていて、アプリケーションの他の場所で使用されている ConnectionString を選択しました。

開発ボックスではすべて正常に動作しますが、データベース パスワードが開発ボックスと同じではないアプリケーションを本番環境に移行すると、「sa」パスワードが無効であるという例外を除いて、レポートはすべて実行に失敗します。

これで、本番環境の app.config の ConnectionString にパスワードが正しく設定されました。ログインを含め、アプリ内の他のすべての場所で同じ ConnectionString を使用しているため、sa パスワードが適切に設定されていることがわかります。

ウィザードを使用して TableAdapter を DataSet に追加すると、接続を選択するように求められます (既に app.config にあり、アプリの他の場所で使用されている既存の接続を選択しました)。どこかに保存し、常に app.config から読み取るとは限りません。それとも私は何かを誤解していますか?

TableAdapter を持つ各 DataSet が、ユーザー名とパスワードを含む app.config の接続文字列を使用できるようにしたいだけです。

誰もそれを行う方法を知っていますか?

4

1 に答える 1

0

TableAdapter で Fill メソッドを呼び出す前に、次のことを行ってこれを回避しました...

this.EMPLOYEETableAdapter.Connection.ConnectionString =
  ConfigurationManager.ConnectionStrings["MCLabor"].ToString();

これは機能します。ただし、それはちょっと不自由ですが、ウィザードを使用して TableAdapter を作成し、App.Config (ウィザードの [接続] ドロップダウン ボックスから) から既存の接続を選択すると、実際にはその接続が読み込まれないことを明確に証明しています。実行時に app.config からの文字列。誰かが理由を知っていますか、またはこれを処理する実際の方法は何ですか? すべてのレポートのすべての DataSet のすべての TableAdapter の接続文字列を手動で設定する必要はありません。

于 2012-06-26T18:56:01.143 に答える