-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 回答