-1

私の問題は、検索用の子フォームを作成したことですが、SQLクエリとパラメータに問題があります。私のコードは

SqlConnection sc = new SqlConnection(
    "Data Source=MOHAMMED-PC;Initial Catalog=salessystem;Integrated Security=True");

SqlCommand command = new SqlCommand(
    "Select * from customers WHERE (docno = @doc) OR (NAME LIKE @name ) OR (salepoint = @salepoint)", sc);
DataTable dt = new DataTable();
command.Parameters.AddWithValue("@doc", doctxt.Text);
command.Parameters.Addwithvalue("@name", nametxt.Text);
command.Parameters.AddWithValue("@salepoint", salepointtxt.Text);
SqlDataAdapter sda = new SqlDataAdapter(command, sc);
sda.Fill(dt);
dataGridView1.DataSource = dt;

SQLアダプタコマンドとwhere句コマンドでエラーが発生しました。ヘルプはありますか?

4

1 に答える 1

4

三つのこと:

  1. この行にタイプミスがあります

    command.Parameters.Addwithvalue("@name", nametxt.Text);
    

    方法は次のとおりですAddWithValue(大文字と小文字の違いに注意してください)

  2. コンストラクターはSqlDataAdapterコマンドを受け取りますが、コマンドにはすでに接続が含まれているため、接続はありません。これは正しいです。

    SqlDataAdapter sda = new SqlDataAdapter(command);
    

    おそらく最も重要な最後:

  3. 使用する場合LIKEは、ワイルドカードを使用する必要があります%

    command.Parameters.AddWithValue("@name", string.Format("%{0}%",nametxt.Text);
    
于 2013-01-23T09:21:08.067 に答える