-1

以下のコードで間違いを見つけることができません。SQLDataSourceを使用してデータベースに接続すると、エラーは発生しません。ただし、SQLDataSourceが使用するのと同じ接続文字列を使用してデータベースに接続するカスタムコードを記述しようとすると、次の問題が発生します。エラー:

(プロバイダー:名前付きパイププロバイダー、エラー:40-SQL Serverへの接続を開くことができませんでした)

私のコードには間違いはないと思いますが、SQL2008Expressの構成設定には間違いはありません。

前もって感謝します...

    SqlConnection sqlcon = new SqlConnection();
    sqlcon.ConnectionString = "Data Source=ERHANEMREEROGLU/SQLEXPRESS;Initial Catalog=KET;Integrated Security=True";
    sqlcon.Open();

    SqlCommand sqlcmd = new SqlCommand();
    sqlcmd.Connection=sqlcon;
    sqlcmd.CommandText = "SELECT * FROM Login";
    sqlcmd.CommandType = CommandType.Text;

    sqlcmd.ExecuteNonQuery();

    sqlcon.Close();
4

6 に答える 6

1

これを読むべきではありません:

sqlcon.ConnectionString = "Data Source=ERHANEMREEROGLU\\SQLEXPRESS;Initial Catalog=KET;Integrated Security=True";     
于 2012-07-06T09:25:47.227 に答える
0

SQLデータベースでWindows認証を使用している場合は、統合セキュリティをSSPIに変更する必要がありますか?よくわかりませんが。-これに関するいくつかの情報を読んで編集すると、SSPIはTrueと同等なので、代わりに以下の提案を参照してください。

sqlcon.ConnectionString = "Data Source=ERHANEMREEROGLU/SQLEXPRESS;Initial Catalog=KET;Integrated Security=SSPI";

ただし、John Bladeが言ったように、リモート接続を受け入れることをConfigurationManagerで確認する必要がある場合もあります。

また、Windowsユーザーがデータベースに追加されていることを確認してください。これは、SQLMangementStudioツールを使用して実行できます。

于 2012-07-06T09:34:18.890 に答える
0

次の場所から行を変更する必要があります。

sqlcmd.ExecuteNonQuery();

に:

  SqlDataReader dr = sqlcmd.ExecuteReader();
于 2012-07-06T09:28:50.007 に答える
0

SQLサーバーがリモート接続を許可しているかどうかを確認してみてください。SQLサーバー構成マネージャーで設定できます。

次に、リモートTCP接続を有効にします

于 2012-07-06T09:29:48.777 に答える
0

ExecuteNonQuery();挿入/更新/削除ステートメント用に実行しています。ExecuteReaderを使用してDataReaderを入力するか、 SQLDataAdapterを使用してデータセット/データテーブルを入力できます。

SqlDataReader reader = sqlcmd.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}", reader[0]));
        }

あなたが試すことができます:

using (SqlConnection sqlcon  = new SqlConnection(
        "Data Source=ERHANEMREEROGLU\\SQLEXPRESS;Initial Catalog=KET;Integrated Security=True"))
        {
        sqlcon.Open();
        using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM Login", sqlcon ))
        {
            DataTable t = new DataTable();
            a.Fill(t);
        }
        }
于 2012-07-06T09:25:18.760 に答える
0

のステートメントに問題がありますsqlcmd.ExecuteNonQuery();

SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Login", sqlcmd))            
DataTable t = new DataTable();
adapter.Fill(t);

実際にはクエリを実行していて、どちらかSqlDataReaderまたはSqlDataAdapterここが必要です。

于 2012-07-06T09:25:48.197 に答える