2

(ウェブ上にこのような質問がたくさんあることを知っています。これを解決するために数日を費やしましたが、どこにも行きません。これは初めてですので、ご容赦ください)

1.問題

アプリケーションをインストールした後、SQL Server 2005 Expressを友人のコンピューター(Vista Home Premium)にインストールし、アプリケーションを起動するか、アプリケーション内で新しいフォーム(C#Windowsフォーム)を開くたびに、データベース(mdfファイル)を新しいSQLサーバーに接続します。次のメッセージが表示されます。

System.Data.SqlClient.SqlException:ユーザー''のログインに失敗しました。ユーザーは信頼できるSQLServer接続に関連付けられていません。

[続行]をクリックすると、データベースの読み取り/書き込みが可能になり、アプリケーションは期待どおりに機能します(新しいフォームを開いて同じメッセージが再度表示されるまで)。

2.これが私がこれまでに行ったことです。

多くのスレッドで提案されているのを見てから、「SQL ServerとWindows認証モード」をオンにしましたが、役に立ちません。

私の現在の接続文字列:

"データソース=。\SQLEXPRESS;初期カタログ=pj;統合セキュリティ=SSPI;"

接続文字列に「。\SQLEXPRESS」が含まれているため、「computer-name \ username」(私の場合は「TONY-COMPUTER \ TONY」)に接続しようとします。そのため、その名前のSQLユーザーをロールメンバーシップdb_datareaderと一緒に追加しました。 db_datawriterを使用して、DBに対して読み取り/書き込みを行うことができます。

また、次のような接続文字列を試してみました。

"データソース=。\SQLEXPRESS;初期カタログ=pj;ユーザーID=トニー;パスワード=123;"

次に、SQLユーザー「Tony」を追加しました。

しかし、私は同じエラーを受け取り続けます。私が困惑しているのは、エラーメッセージにユーザー名がないことです。「TONY-COMPUTER \ TONY」または「Tony」が表示されると思いますが、空白です。

どんな助けでも大歓迎です!

/トニー

4

2 に答える 2

1

SQL認証エラーが発生しても、プログラムがデータベースにアクセスできる場合は、2つの異なる方法でデータベースにアクセスしようとしていることを示しています。

ハードコードされた接続文字列を使用してデータベースにアクセスしようとする不要なコードがないことを確認しますか?

これは、Visual Studioデザイナーを使用して接続を定義した場合に発生することがあります。この設定は、designer.csファイルに保存されますが、実行時に適切な接続文字列を使用して上書きされる可能性があります。開発マシンでは、ハードコードされた接続文字列が機能する可能性があるため、これは気付かれません。

これは、エラーが実際の接続文字列と関係がない理由も説明します。

于 2012-05-21T19:25:54.133 に答える
0

Visual Studioでプログラムしますか?はいの場合、サーバーエクスプローラーにデータ接続を追加しようとしましたか?接続を右クリックしてプロパティを選択すると、接続文字列を選択できます。ユーザー名とパスワードを変更するだけです。

これも役に立ちます

于 2012-05-21T13:39:59.680 に答える