我总通过两textbox设置查询源数据,第一个textbox可以查询,第二个也可以,两个结合一起也可以查询。写代码如下,
string strRowFlr = "";          //过滤字符串
if (this.MemberIdTxt.Text.Trim() != "")//设置表的过滤条件
strRowFlr += "MemberID like '" + MemberIdTxt.Text.Trim() + "' ";
if (this.MemberNameTxt.Text.Trim() != "")
{
  if (strRowFlr!="")
   {
    strRowFlr += " and ";
    }
  strRowFlr += "MemberName like '%" + MemberNameTxt.Text.Trim() + "%'";
}
调试输入有提示错误,请问哪里有问题,可以贴你的代码让我参考下,谢谢

解决方案 »

  1.   

    我想通过两个textbox查询源数据,设置单独第一个textbox可以查询,单独第二个也可以,两个结合一起也可以查询。写过滤字符串如下, 
    string strRowFlr = "";          //过滤字符串 
    if (this.MemberIdTxt.Text.Trim() != "")//设置表的过滤条件 
    strRowFlr += "MemberID like '" + MemberIdTxt.Text.Trim() + "' "; 
    if (this.MemberNameTxt.Text.Trim() != "") 

      if (strRowFlr!="") 
      { 
        strRowFlr += " and "; 
        } 
      strRowFlr += "MemberName like '%" + MemberNameTxt.Text.Trim() + "%'"; 

    调试输入有提示错误,请问哪里有问题,可以贴你的代码让我参考下,谢谢 
      

  2.   

    错误提示信息是什么?
    MemberID是数值型还是字符型?
    你的查询是拼接SQL语句还是用DataTable或者DataView过滤?
    建议还是自己单步调试。
      

  3.   

    try
                {
                    string strRowFlr = "";
                    StringBuilder sb = new StringBuilder();
                    if (this.checkBox1.Checked)
                        sb.Append(string.Format("MemberID = '{0}'", this.MemberIdTxt.Text.Trim()));
                    if(this.checkBox2.Checked)
                    {
                        if (sb.Length > 0)
                            sb.Append(" and ");
                        sb.Append(string.Format("MemberName like '{0}'", this.MemberNameTxt.Text.Trim()));
                    }
                    strRowFlr = sb.ToString();
               if (strRowFlr!="")    //存在查询条件
                    {                    strRowFlr = strRowFlr.Substring(0, strRowFlr.Length - 5);
                        this.dtable.DefaultView.RowFilter = strRowFlr;
                        this.MemberDataAdapter.Fill(this.dtable);
                        dataGridView1.DataSource = this.dtable;
                    }
                   
                }
    MemberID是字符型,DataTable过滤,调试到最后一行dataGridView1.DataSource = this.dtable;
    报错:System.Data.EvaluateException:筛选表达式“MemberID”的计算结果不是布尔值项,麻烦楼上帮我看一下
      

  4.   

    估计又是拼字符串后引起的错误。
    你跟踪一下,到最后 strRowFlr 是什么内容,是不是由于引号的原因啊。
      

  5.   

    string strRowFlr = "";          //过滤字符串
      

  6.   

    问题解决了,去掉strRowFlr = strRowFlr.Substring(0, strRowFlr.Length - 5); 
    就ok,谢谢各位。