为什么这段代码没效果?
using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = "server=WIN-Q4FF6B0E237;database=northwind;uid=sa;pwd=123456";
                conn.Open();                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "select * from products ";
                cmd.Connection = conn;                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                comboBox1.DataSource = ds.Tables["Products"];
                comboBox1.DisplayMember = "ProductID";
                comboBox1.ValueMember = "ProductID";
            }

解决方案 »

  1.   

    comboBox1.DataBind();
    少这一句代码
      

  2.   

    comboBox1.DisplayMember = 这个是值
      comboBox1.ValueMember = 这个是ID
    你两个都绑ID了!当然没值
    有值也是你的ID
      

  3.   

    comboBox1.DataSource = ds.Tables["Products"]; 这句改成如下
    comboBox1.DataSource = ds.Tables[0];
      

  4.   


    //你在Fill时,如果没有指定表名,则默认的表名为Table
    da.Fill(ds);//所以你这样不行:
    comboBox1.DataSource = ds.Tables["Products"];
    //这样可以
    comboBox1.DataSource = ds.Tables["Table"];//你要这样
    comboBox1.DataSource = ds.Tables["Products"];//就必须
    da.Fill(ds,Products);
      

  5.   


    //刚才的回复有点小错误,没有引号
    da.Fill(ds,"Products");
      

  6.   

    comboBox1.DisplayMember = 这个是值
      comboBox1.ValueMember = 这个是ID
    你两个都绑ID了!当然没值
    有值也是你的ID
      

  7.   

    comboBox1.DataSource = ds.Tables["Products"];
      comboBox1.DisplayMember = "ProductID";
      comboBox1.ValueMember = "ProductID";这里的问题,LS很详细了
      

  8.   

    comboBox1.DataSource = ds.Tables["Products"];
    默认不都comboBox1.DataSource = ds.Tables[0];这个么,,,
      

  9.   

    da.Fill(ds);
      comboBox1.DataSource = ds.Tables["Products"];
    这个地方有错误,
    1,
    da.Fill(ds,"Products");
    comboBox1.DataSource = ds.Tables["Products"];
    2,
    da.Fill(ds);
    comboBox1.DataSource = ds.Tables[0];
    这两种方法都可以
      

  10.   

    你中断到这句:comboBox1.DataSource = ds.Tables["Products"];
    然后你看一下ds里的Table,你就明白了,它不是像你那样想的以"select * from products ";这句里的表名作为表名,好像默认的是"table",不知道有没有跟一个table0,1,2...之类的数字.详细的你看一下就知道,如果SQL语句查询出来两个表,它也是以这种形式默认.