建议你把condition打印出来,再看看是哪的错

解决方案 »

  1.   

    condition是什么呀?C#我不是很会
      

  2.   

    myDV.RowFilter = condition;
    这个condition是你组合出来的SQL语句,应该是数据上出了问题
    你可以这样
    在myDV.RowFilter = condition;前加一行:
    string a=condition;
    然后在这行中断,看下a的值,应该是sql语句出了问题
      

  3.   

    改成:
      if (this.textBox1.Text.Trim() != "")
      {
      condition += "商品编号 like '%'" + textBox1.Text.Trim() +"'%'";
      if (this.textBox2.Text.Trim() != "")
      {
      condition += "and 商品名称 like '%'"+ textBox2.Text.Trim()+ "'%'";
      }
      }
      else
      {
      if (this.textBox2.Text.Trim() != "")
      {
      condition += "商品名称 like '%'"+ textBox2.Text.Trim()+"'%'";
      }
      

  4.   

    condition += "商品编号 like '%'"+textBox1.Text.Trim()+"'%'";
      引号问题
      

  5.   

    确实是数据问题,运行出来是a=商品编号 like '%'+textBox1.Text.Trim()+'%',这要怎么改啊?我实在是不会了
      

  6.   

    相当于strWhere
    stringbuilder sb=new stringbuilder("1=1");
    if(textBox1.Text.trim()!="")
    sb.apend("商品编号 like '%"+textBox1.Text.Trim()+"%'");这样写能好一点地
      

  7.   

    condition += "商品编号 like '%'+textBox1.Text.Trim()+'%'";你这行里都把textBox1.Text.Trim()作为字符串了。。应该改成condition += "商品编号 like '%'"+textBox1.Text.Trim()+"'%'";
      

  8.   

    你可以在程序运行时候,先将condition的值输出来调试看下,就知道你写的这些逻辑,最后得到的condition到底能不能用
      

  9.   

    DataView myDV = new DataView(facNumSet.Tables["TableName"]);
      myDV.RowFilter = condition;
    这边的condition直接改为myDV.RowFilter="商品编码 like '%1010002%'"
    然后运行一下看能不能用
      

  10.   

    议你把condition打印出来,再看看是哪的错伙计 你不知道那错的时候就打印出来 看以下你就会明白的啊 
      

  11.   

    condition打印出来是 商品编号 like '%'1010002'%' 是有问题 那要怎么修改呢?
      

  12.   

    condition += "商品编号 like '%"+textBox1.Text.Trim()+"%'";
    这样才可以
      

  13.   


    应该是 商品编号 like '%1010002%' 
      

  14.   

    在组合sql时一定要注意,最好每次都打印出来看下结果是否正确
    应该改成这样condition += "商品名称 like '%" + textBox1.Text.Trim() + "%'";另外在组合SQL时,前后条件之间的空格也是需要注意的
    比如
    a=where xxx
    b=and
    则应该是
    a="where xxx";
    b=" and";
      

  15.   

    应该不会,因为我的商品编号不是固定的1010002,是随textbox1变化的
      

  16.   


    把SQL整个打印出来,去SQLSERVER里查询下,如果没数据,那当然是什么都没有了
      

  17.   

    SQL里我建表时填充数据了呀,既然填了应该能查出来吧?
      

  18.   

    myDv应该有个函数count吧,自己添加个语句在消息框中输出一下嘛
      

  19.   

    按理说如果你确实在数据库里写了数据,那应该是可以查的,你把整个SQL打印出来,写在这
    另外从你的代码里看,好象没有where啊Select * from shangpinxinxi where 商品编号 like '%" + textBox1.Text.Trim() + "%' and 商品名称 like '%" + textBox2.Text.Trim() + "%'where在哪?改成下面的看看string condition = "";
      if (this.textBox1.Text.Trim() != "")
      {
      condition = " where 商品编号 like '%'+textBox1.Text.Trim()+'%'";
      if (this.textBox2.Text.Trim() != "")
      {
      condition += " and 商品名称 like '%' + textBox2.Text.Trim()+'%'";
      }
      }
      else
      {
      if (this.textBox2.Text.Trim() != "")
      {
      condition += "商品名称 like '%' + textBox2.Text.Trim()+'%'";
      }
      else
      {
      MessageBox.Show("请输入查询条件", "错误");
      return;
      }
      

  20.   

    其实上面的判断还不是很健壮
    你要考虑当text1没有值,text2有值时的sql语句该如何组合
    text1有值
    sql就是select * from xxx where xxx and xxxx
    如果text1没值,text2有值,按上面简单判断就成了
    select * from xxx and xxxxxxxxx
    就报错了
      

  21.   

    加上where还是没反应,我刚刚试图用商品名查询点击按钮后还是没反应
      

  22.   


    你把你打印出的sql语句整个拷贝过来看下
      

  23.   

    目前改成这样后有反应了
            private void button1_Click(object sender, EventArgs e)
            {            string condition = "";
                if (this.textBox1.Text.Trim() != "")
                {
                    condition = " select * from shangpinxinxi  where 药品编号='" + textBox1.Text + "' ";                if (this.textBox2.Text.Trim() != "")
                    {
                        condition += " and select * from shangpinxinxi  where 药品名称='" + textBox2.Text + "' ";
                    }
                }
                else
                {
                    if (this.textBox2.Text.Trim() != "")
                    {
                        condition += "select * from shangpinxinxi  where 药品名称='" + textBox2.Text + "' ";                }
                    else                {
                        MessageBox.Show("请输入查询条件", "错误");
                        return;
                    }
                }
                //////////////////////////////////////////////////////////
                DataView myDV = new DataView(facNumSet.Tables["TableName"]);            myDV.RowFilter = condition;
                
                this.dataGridView1.DataSource = myDV;
                ///////////////////////////////////////////
                if (this.dataGridView1.RowCount== 1)
                {
                    MessageBox.Show("对不起,货品中没有与您检索条件相匹配的记录!");
                    return;
                }
                this.textBox1.Clear();
                this.textBox2.Clear();
            }
    报的错是语法错误:“shangpinxinxi”运算符后缺少操作数。
      

  24.   

    哪能把select。这些语句赋给rowfilter属性啊
      

  25.   

    string condition = "";
    bool flag=false;
      if (this.textBox1.Text.Trim() != "")
      {
         condition+="商品编号 like '%"+this.textBox1.Text.Trim()+"%'";
         flag=true;
      }
      if (this.textBox2.Text.Trim() != "")
    {
       if(flag)
      {
        condition+=" and 商品名称 like '%"+this.textBox2.Text.Trim()+"%'";
      }
      else
        condition+="商品名称 like '%"+this.textBox2.Text.Trim()+"%'";}
    if(condition=="")
    {
    MessageBox.Show("请输入查询条件", "错误");
      return;}