0

私は ac# アプリケーションを書いています。処理のためにバックエンド SQL Server に接続します。しかし、今日は奇妙な問題にぶつかりました。これは私のコードです:

static void Main(string[] args)
{
    SqlConnection con = new SqlConnection("Integrated Security=true");
    con.Open();

    SqlCommand cmd = new SqlCommand("SELECT SERVERPROPERTY('ProductVersion')", con);
    cmd.CommandType = CommandType.Text;

    SqlDataReader reader = cmd.ExecuteReader();
    reader.Read();

    Console.WriteLine(reader.GetString(0));
    Console.Read();
}

接続文字列にサーバー名を指定していませんが、ローカル データベースに接続して必要なデータを取得します。私はどのように疑問に思っています。既定のデータ ソースはローカル コンピューターに設定されていますか? 「Integrated Security=true」はこれと関係がありますか?

誰かがこれを説明できますか?

ありがとう、 ソルナクマール S

4

2 に答える 2

4

MSDN の ConnectionString に関するドキュメントを見ると、この情報を見つけることができます

ローカル コンピュータに接続するには、サーバーに「(local)」を指定します。サーバー名が指定されていない場合、ローカル コンピューター上の既定のインスタンスへの接続が試行されます。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.100).aspx

于 2012-11-22T21:02:41.677 に答える
2

統合セキュリティとは、現在のユーザーのユーザー名とパスワードを使用してローカル SQL Server インスタンスに接続することを意味します。
それがなければ、特定のサーバー、ユーザー名、およびパスワードを指定する必要がありました。

ちなみに、エラーが発生する可能性があるため、運用サーバーではそのように使用しないでください。すべてのデータベース設定に web.config ファイルを使用します。

お役に立てれば。

于 2012-11-22T20:59:24.127 に答える