我的事件代码为
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
string SelStr="select * from 客户价格 where 客户类型=@khlx";
SqlDataAdapter da=new SqlDataAdapter(SelStr,sqlConnection1);
da.SelectCommand.Parameters.Add(new SqlParameter("@khlx",SqlDbType.NChar,18));
da.SelectCommand.Parameters["@khlx"].Value=comboBox1.SelectedText;
    
DataSet ds=new DataSet();
da.Fill(ds,"khjg");
dataGrid1.DataSource=ds.Tables["khjg"].DefaultView;


}
编译运行后,在选择combox的item时,在datagrid中只是显示了列标题(数据库中表的字段),但是里面的内容却没有,这是为什么

解决方案 »

  1.   

    da.SelectCommand.Text = SelStr;
    代码不知道对不对,就是需要给把SelStr赋值
    还有一种可能就是试验一下:
    dataGrid1.DataBind();
      

  2.   

    我把
    string SelStr="select * from 客户价格 where 客户类型=@khlx";
    SqlDataAdapter da=new SqlDataAdapter(SelStr,sqlConnection1);
    da.SelectCommand.Parameters.Add(new SqlParameter("@khlx",SqlDbType.NChar,18));
    da.SelectCommand.Parameters["@khlx"].Value=“一般客户”;
        
    DataSet ds=new DataSet();
    da.Fill(ds,"khjg");
    dataGrid1.DataSource=ds.Tables["khjg"].DefaultView;
    放到了构造函数中,编译能够正确显示,这是怎么回事
      

  3.   

    漏了da.SelectCommand.Text = SelStr;
    如果是在WinForm应是这样绑定数据库的:
    DataGrid1.SetDataBinding(ds,"khjg");如果是WebForm就应加上DataGrid1.DataBind()
      

  4.   

    windows下面:
    ComboBox1.DataSource = myDataSet ;//数据集
    ComboBox1.DisplayMember = "person.userId" ;//表名加字段名
    ComboBox1.ValueMember = "person.username" ;
    或者
    this.ComboBox1.DataSource = myDataTable;//数据表
    this.ComboBox1.DisplayMember = "Name";字段名