0

なぜこれが失敗しているのかわからない...それは私のせいだと確信している。どんな助けでも大歓迎です。

私は古典を手に入れています

ログインで要求されたデータベース「Northwind」を開くことができません。ログインに失敗しました。ユーザー'MyMachine\MyUserName'のログインに失敗しました。

SQL ServerManagementStudioを介したWindows認証を使用して問題なくログインできます。

SQL Server Management Studioをチェックインして、ユーザーがNorthwindデータベースを使用する権限を持っていることを確認しました。また、stackoverflowに投稿されたこの質問に対する他のほとんどの回答も試しました。

これは私のコードです:

        SqlConnection dataConnection = new SqlConnection();
        try
        {
            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
            builder.DataSource = ".\\SQLExpress";
            builder.InitialCatalog = "Northwind";
            builder.IntegratedSecurity = true;
            dataConnection.ConnectionString = builder.ConnectionString;
            dataConnection.Open();

...。

SQL Server2008Expressを使用しています

4

3 に答える 3

1
  1. MS SQL Studioで、サーバーを右クリックし、プロパティに移動してSecuritySQL Server and Windows Authencation mode

ここに画像の説明を入力してください

次に、サーバーを再起動します。

  1. サーバーで。セキュリティフォルダに移動し、新しいログインを作成しますここに画像の説明を入力してください

  2. ユーザー名とパスワードを入力します。チェックを外すだけEnforced Securityです(テスト目的のみ)ここに画像の説明を入力してください

  3. ユーザーマッピングに移動し、新しいログインアカウントで処理するデータベース(NorthWind)を確認してから、db_accessadminここに画像の説明を入力してください

  4. [OK]をクリックします

コードを試してください

SqlConnection dataConnection = new SqlConnection();
            try
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
                builder.DataSource = "UNKNOWN01-PC\\SQLEXRESS2008R2";
                builder.InitialCatalog = "Northwind";
                //builder.IntegratedSecurity = true;
                builder.UserID = "testlogin";
                builder.Password = "1234";
                dataConnection.ConnectionString = builder.ConnectionString;
                dataConnection.Open();
            }
            catch  (Exception)
            {
                throw;
            }

ここでの本当の問題は疑わしいですが、SqlConnectionStringBuilder説明することはできません。私はただの初心者です。:)

于 2012-12-15T16:00:46.570 に答える
1

何度も同じトラップに陥らないようにこれを書いています...データベースのデフォルト名は「NORTHWIND」ではなく「NORTHWND」です。名前は.bakファイルのインポート中にWindowsSQLServerによって自動的に作成されます。公式サイトから。だからこれは大丈夫です

static string connectionString = "data source=GMDESK028\\SQLSERVER2;initial catalog=NORTHWND;Integrated Security=SSPI;";
于 2014-12-22T15:55:04.313 に答える
0

この方法で試してみてください。これは常に機能します。次のように、文字列をパラメータとして指定するだけで、接続文字列から直接新しいSQL接続オブジェクトを作成できるため、より簡単です。

string connectionString = @"Server=server\instance;Database=Northwind;Integrated Security=True";
SqlConnection dataConnection = new SqlConnection(connectionString);
try
{
dataConnection.Open();
}
catch (sqlexception e)
{
Messagebox.Show("Error");
}
于 2012-12-15T19:10:14.190 に答える