小弟抓了个ComboBox(里面有A,B,C,D四项),然后一个button.通过选ComboBox中的内容然后点button查询,查到了内容(A相关的记录).但是这时再点ComboBox下拉想再查找B的记录,发现ComboBox里只有A一个选项了.为什么呢?怎样才能恢复呢?
  谢谢各位好心大哥们

解决方案 »

  1.   

    private void comboxSel_Load(object sender, System.EventArgs e)
    {
    string sql  = "select distinct 品名 from 商品清单";
    this.ds = lk.linkdatabase(sql,"商品清单");
    comboBox1.DataSource = this.ds.Tables[0];
    comboBox1.DisplayMember = "品名";
    }private void button1_Click(object sender, System.EventArgs e)
    {
    string comboxtext = comboBox1.Text.ToString();
    string sql = "select * from 商品清单 where 品名='"+comboxtext+"'";
    this.ds = lk.linkdatabase(sql,"商品清单");
    dataGrid1.DataSource = ds.Tables[0];
                  }这是一段combox的代码。现在combox可以选择四项:计算机,电脑,MP3,MP4。假设我在combox中选中计算机这一项,然后点查询按纽,那么就显示出相应的符合计算机的记录。然后我想再次查询符合MP3的记录,可是combox中却只有了计算机一个选项了,其他三个没有了,也就是不能多次查询。
      

  2.   

    你的combox的数据源被你的点击查询后改变了.变成了只有A的那个数据源了
    this.ds = lk.linkdatabase(sql,"商品清单");//Load
    this.ds = lk.linkdatabase(sql,"商品清单");//click你使用两个数据源就可以了. 不过一般是建议, 此类不带其他超作的绑定, 使用Arraylist或是datareader而不是dataset.
      

  3.   

    private void comboxSel_Load(object sender, System.EventArgs e)
    {
        string sql  = "select distinct 品名 from 商品清单";
        this.ds = lk.linkdatabase(sql,"商品清单");  //<-这里用作数据源的数据集叫ds
        comboBox1.DataSource = this.ds.Tables[0];
        comboBox1.DisplayMember = "品名";
    }pton1_Click(object sender, System.EventArgs e)
    {
        string comboxtext = comboBox1.Text.ToString();
        string sql = "select * from 商品清单 where 品名='"+comboxtext+"'";
        this.ds = lk.linkdatabase(sql,"商品清单");          //<-这里用作数据源的数据集也叫ds
        dataGrid1.DataSource = ds.Tables[0];
    }你的dataGrid和combobox用同一个数据集当作数据源,当然相同字段显示的数据一样。
    解决办法:不同的控件绑定不同的数据集。
      

  4.   

    ds 重用了
    我第一次做c#项目也碰到过,呵呵