if (textBox1.Text == "") 
 myda.SelectCommand.Parameters["@sale_id"].Value = "%";
===
这是什么意思?Id 为空,为什么赋值为%?

解决方案 »

  1.   

    myda.SelectCommand.Parameters["@sale_id"].Value   =   "%"; 表示 当编号没有填写时...进行查询...也就是说编号可以为数据库里任意一个...
      

  2.   

    SqlParameter param=new SqlParameter("@ID",SqlDbType.Int);
    param.Value=xxx;
    myda.SelectCommand.Parameters.Add(param);
    这样添加参数试下....
      

  3.   

                                    myda   =   new   SqlDataAdapter(); 
                                    myda   =   new   SqlDataAdapter("getallczyinfo",   mycn); 
                                    myda.SelectCommand   =   mycmd; 
                                    mycmd.Parameters["@sale_id"].Value   =   "%"; 
                                    mycmd.Parameters["@sale_name"].Value   =   "%"; 
                                    mycmd.Parameters["@sale_jg"].Value   =   "%"; 
                                    myda.Fill(myds,   "salepeople"); 
                                    dataGridView1.DataSource   =   myds; 
                                    dataGridView1.DataMember   =   "salepeople"; 
                                    comboBox1.SelectedIndex   =   0; 
    改成这样:
                                    myda   =   new   SqlDataAdapter(); 
                                    //myda   =   new   SqlDataAdapter("getallczyinfo",   mycn); 
                                    myda.SelectCommand   =   mycmd; 
                                    mycmd.Parameters["@sale_id"].Value   =   "%"; 
                                    mycmd.Parameters["@sale_name"].Value   =   "%"; 
                                    mycmd.Parameters["@sale_jg"].Value   =   "%"; 
                                    myda.Fill(myds,   "salepeople"); 
                                    dataGridView1.DataSource   =   myds; 
                                    dataGridView1.DataMember   =   "salepeople"; 
                                    comboBox1.SelectedIndex   =   0; 
      

  4.   

    回复 stray2010 :换种写法我也试过...不行....SqlParameter myParm1 = mycmd.Parameters.Add("@sale_id", System.Data.SqlDbType.Char, 10, "sale_id");
                    myParm1.Value ="%";
                    SqlParameter myParm2 = mycmd.Parameters.Add("@sale_name", System.Data.SqlDbType.Char, 10, "sale_name");
                    myParm2.Value = "%";
                    SqlParameter myParm3 = mycmd.Parameters.Add("@sale_jg", System.Data.SqlDbType.Char, 10, "sale_jg");
                    myParm3.Value = "%";                myda = new SqlDataAdapter();
                    myda = new SqlDataAdapter("getallczyinfo", mycn);
                    myda.SelectCommand = mycmd;
                    mycmd.Parameters["@sale_id"].Value = "%";
                    mycmd.Parameters["@sale_name"].Value = "%";
                    mycmd.Parameters["@sale_jg"].Value = "%";---------------------------------------------
    换了个写法还是不行.....
      

  5.   

    其实刚开始是提示:此 SqlParameterCollection 中未包含带有 ParameterName“@sale_id”的 SqlParameter。晕,然后我就改改写法....日.....总是不行....感觉这应该是很简单的啊...怎么就是不行啊?
      

  6.   

    myda.SelectCommand.Parameters["@sale_id"].Value       =       "%";   表示   当编号没有填写时...进行查询... 也就是说编号可以为数据库里任意一个...
    ===
    你是什么数据库的?
    原来还能这么用的啊 向楼主学习
      

  7.   

    还有你传的参数也不能像你那样啊,你那样%得用like而不是=。
      

  8.   

    报告楼上的大大...偶是sql server 2000的数据库.偶是新手....呵呵,不断学习中.....
    我感觉我还是数据库连接的时候有什么问题....c#我正在自学...有很多不懂的地方大家不要见笑啊,每个人都是从新手成长起来的嘛...
      

  9.   

    mycmd.Parameters["@sale_id"].Value       =       "%%";   
                                                                    mycmd.Parameters["@sale_name"].Value       =       "%%";   
                                                                    mycmd.Parameters["@sale_jg"].Value       =       "%%"; 
    这三个也改了
      

  10.   

    呵呵,非常感谢...lye2000000_super、dmhaifeng和lovehongyun给我的帮助,太感谢你们了......当然还有所有关注的大大们。你们是好人啊......
      

  11.   

    KISS = Keep It Simply, Stupid :)CREATE   PROCEDURE   getallczyinfo ( 
    @sale_id   char(10) -- this example solution skips the other two param

    AS 
       select   *
       from   salepeople   
       where   sale_id = case when @sale_id='' then sale_id else @sale_id  end
    -- remember the use of case statement. It saves a lot of code.
    GO ...
    mycmd.CommandText   =   "getallczyinfo"; 
    mycmd.Parameters.AddWithValue(@sale_id, textBox1.Text.Trim());
    ...