选择带有文本框的语句和c#中的复选框

时间:2017-06-27 16:58:17

标签: c# sql

我尝试构建一个允许我同时通过文本框和复选框进行搜索的查询,但每次都得到一个没有记录的返回值,无法确定原因。

con.Open();

string str = "Select * from engineering where Education = @Education AND JobNumber like '%' + @search + '%'  ";

SqlCommand xp = new SqlCommand(str.ToString(), con);

xp.Parameters.Add("@search", SqlDbType.NVarChar).Value = txtProjectNumber.Text;
xp.Parameters.Add("@Education", SqlDbType.Int).Value = chkEducational.CheckState;

try 
{
    da = new SqlDataAdapter();
    da.SelectCommand = xp;
    da.Fill(ss);
    Showdata(pos);
    DataSet ds = new DataSet();
    da.Fill(ds, "ss");
    dataGridView1.DataSource = ds.Tables["ss"];
} 
catch 
{
    MessageBox.Show("No Record Found");
}

con.Close();

以上是我的搜索按钮的代码。没有必要担心Showdata(pos),因为那只是滚动返回的结果。如果我拿出Education = @Education或JobNumber ='%'该查询将有效。 + @ search1 +'%' ,由于某种原因不在一起。对此的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

string str = "Select * from engineering where Education = @Education AND JobNumber like @search";    
SqlCommand xp = new SqlCommand(str.ToString(), con);      
xp.Parameters.Add("@search", SqlDbType.NVarChar).Value = "%" + txtProjectNumber.Text + "%";

答案 1 :(得分:0)

我已经找到了一个关于我想要发生什么的答案,我使用文本框参数正常编写了查询,并添加了if语句,如果选中了复选框,则添加到where子句。

以下是我所说的一个例子:

con.Open();


        string str = "select * from engineering where JobNumber like '%' + @search + '%' ";
if(chkEducational.Checked)
str += "AND Education = @Education";

SqlCommand xp = new SqlCommand(str.ToString(), con);


 xp.Parameters.Add("@search", SqlDbType.NVarChar).Value =  txtProjectNumber.Text;
xp.Parameters.Add("@Education", SqlDbType.Int).Value = chkEducational.CheckState;



try
        {


            da = new SqlDataAdapter();
            da.SelectCommand = xp;
            da.Fill(ss);
            Showdata(pos);
            DataSet ds = new DataSet();
            da.Fill(ds, "ss");
            dataGridView1.DataSource = ds.Tables["ss"];

        }
        catch
        {
            MessageBox.Show("No Record Found");

        }





        con.Close();

感谢那些花时间回答我问题的人。