我的表单上有combobox1
,它由数据源绑定,它显示数据表中的值。
然后我需要填充combobox2
,但是触发的存储过程需要一个参数。
如何将combobox1
中的selectedValue传递到数据源中,以便combobox2显示其值?
到目前为止,这是我的代码:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string databaseName = string.Empty;
if (comboBox1.SelectedValue != null) databaseName = comboBox1.SelectedValue.ToString();
comboBox2.DataSource(FindColumn.GetData(databaseName));
}
答案 0 :(得分:0)
这是如何将ComboBox
绑定到DataTable
数据源以及如何从所选项中获取值的示例(以便稍后您可以使用该值填充另一个组合框)
// On constructor - Quickly create some table and fill with some data
DataTable dt = new DataTable();
dt.Columns.Add("a");
dt.Columns.Add("b");
dt.Columns.Add("c");
dt.Rows.Add("1", "2", "aaa");
dt.Rows.Add("3", "4", "bbb");
// setup combo box data binding
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "b";
comboBox1.ValueMember = "a";
请注意,我们不引用列“c”
void button1_click()
{
MessageBox.Show(((DataRowView )comboBox1.SelectedItem)[2].ToString ());
}
这将导致显示“aaa”或“bbb”。现在,您可以使用该值来调用存储过程。
基本上,绑定DataTable
时,每个组合项都是DataRowView
。所有表数据都可用于您选择的行。
注意
comboBox1.DisplayMember = "b";
comboBox1.ValueMember = "a";
通常这就足够了。您可以将一些id用作ValueMember
并使用该ID进行CRUD操作。但同样,上面的示例显示您可以通过SelectedItem
属性提供更多不同的值。