我的事件代码为
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中只是显示了列标题(数据库中表的字段),但是里面的内容却没有,这是为什么
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中只是显示了列标题(数据库中表的字段),但是里面的内容却没有,这是为什么
代码不知道对不对,就是需要给把SelStr赋值
还有一种可能就是试验一下:
dataGrid1.DataBind();
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;
放到了构造函数中,编译能够正确显示,这是怎么回事
如果是在WinForm应是这样绑定数据库的:
DataGrid1.SetDataBinding(ds,"khjg");如果是WebForm就应加上DataGrid1.DataBind()
ComboBox1.DataSource = myDataSet ;//数据集
ComboBox1.DisplayMember = "person.userId" ;//表名加字段名
ComboBox1.ValueMember = "person.username" ;
或者
this.ComboBox1.DataSource = myDataTable;//数据表
this.ComboBox1.DisplayMember = "Name";字段名