1

私は c# の新しい開発者です。ac# プロジェクトを作成しました。SQL データベースにアクセスして SELECT ステートメントを実行する必要があります。

この図でこのエ​​ラーが発生しました

ここに画像の説明を入力

私の接続ステートメントは正しいのに、何が問題なのですか?!

上記の解決策を試しましたが、このエラーが発生しました

ここに画像の説明を入力

誰もそれを処理する方法を知っていますか?!

4

2 に答える 2

6

エラーは、何をすべきかを示しています。あなたの接続はまだ開いていません。次のように開きます。

con.Open();

コマンドを実行する前に。

コードのいくつかのこと、パラメーター化されたクエリを使用します。これにより、SQL インジェクションusingから節約できます。また、接続オブジェクトの破棄を保証するステートメントを使用します。

using (SqlConnection con = new SqlConnection("connection string")) 
using(SqlCommand cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID=@EmpID", con))
{
    cmd.Parameters.AddWithValue("@EmpID", id.Text);
    con.Open();
    SqlDataReader reader = cmd.ExecuteReader();
    //..... your rest of the code
}

編集:

質問の編集部分については、SQL Server でリモート接続が許可されないという問題が発生しています。有効にする必要があります。

参照: SQL Server でリモート接続を有効にする方法

于 2013-11-07T15:56:53.127 に答える
2

リーダーは接続を開く必要があります

con.Open()リーダーを実行する前に置く

SqlCommand cmd = newSqlCommand("SELECT EmpName from Employee where EmpID =" +id.Text,con);
con.open(); //Open connection
SqlReader Read = cmd.ExecuteReader();
if (Read.Read())
{
 Position =Read[0].tostring();
}
read.close();
con.close();//Close connection after reader finishes reading
con.Dispose();
于 2013-11-07T15:57:30.123 に答える