0

データベースを含む Visual Basic 2010 を使用してプログラムを作成しました。プログラムを別のコンピューターにコピーしてデバッグしようとすると、次のエラー メッセージが表示されます。

System.Data.dll で、タイプ 'System.Data.SqlClient.SqlException' の未処理の例外が発生しました

追加情報: ユーザー 'Aaron\Aaron' のログインに失敗しました。

そして、次のコード行がフォーム ロード サブ内で強調表示されます。

 Me.Table1TableAdapter.Fill(Me.Database1DataSet1.Table1)

プログラムを発行すると、作成したコンピューター以外のコンピューターでも実行できません。

私はまだプログラミングに非常に慣れていないので、どんな助けでも大歓迎です、ありがとう。

4

3 に答える 3

1

あなたの説明から、おそらく「サーバー」をまだ使用していないように思えます。.mdf ファイルを移動/コピーしている場合、うまくいきません。開発環境ではこれが許可されますが、他のマシンでは許可されません。マシンの 1 つに SQL Express をインストールし、それを使用して .mdf (データベース ファイル) をホストすると、よりうまく機能します。そのマシンが「サーバー」になります。

  1. SQL Server Express をダウンロードしてインストールする
  2. SQL Server Management Studio をダウンロードします。.mdf を添付するために使用します。権限を設定します。リモート接続を許可します。
  3. Windows ファイアウォール (サーバー上) をチェックして、ポート 1433 が開いていることを確認します (SQL サーバーはポート 1433 でネットワークを介して通信します。
  4. 各マシン (サーバーを除く) は、サーバーに対して認証する必要があります。ドライブをサーバーにマップすると、これがより簡単になります。サーバー上で、「temp」という名前のハード ドライブ上にフォルダーを作成し、それをネットワークで共有します。各マシンで、ネットワークを探索し、サーバーを見つけ、共有 (一時) を見つけて、ドライブをそれにマップします。

これらのことを完了すると、これらの他の推奨事項が機能します。

于 2013-08-20T20:21:44.900 に答える
1

問題になる可能性のあるものはたくさんありますが、まず第一に、最初のコンピューターと同じユーザーが他のコンピューターに設定されていない可能性があります。これがおそらく、Aaron/Aaron のログインに失敗しましたというエラーが表示される理由です。

さらに、最初のコンピューターにはデータベースがあり、2 番目のコンピューターには存在しない場合もあります。プログラムを転送しても、データベースはコピーされません。したがって、最初のコンピューターで SQL Server にアクセスし、2 番目のコンピューターの SQL Server と比較する必要があります。ユーザーとデータベースに違いがあり、それが問題を引き起こす可能性があります。

于 2013-08-20T19:30:44.863 に答える
1

ネットワーク経由でデータベースにアクセスしようとしている場合は、server="HostMachineIP\Aaron" (例: "10.1.1.1\Aaron") を使用し、ファイアウォール ポート 1433 が開いていることを確認してください。

データベースを別のシステムに転送する場合は、接続文字列を次のように設定します: ".\Aaron" - .\ はローカル システムを参照します。

于 2013-08-20T19:29:40.400 に答える