我尝试构建一个允许我同时通过文本框和复选框进行搜索的查询,但每次都得到一个没有记录的返回值,无法确定原因。
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 +'%' ,由于某种原因不在一起。对此的任何帮助将不胜感激。
答案 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();
感谢那些花时间回答我问题的人。