[英]passing parameters using selected value from combo box in c#
我的表单上有一个由数据源绑定的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));
}
这是示例如何将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”。 现在,您可以使用该值来调用存储的proc。
基本上,当您绑定DataTable
,每个组合项都是一个DataRowView
。 您所有的表格数据均可用于您选择的行。
注意
comboBox1.DisplayMember = "b";
comboBox1.ValueMember = "a";
通常这足够了。 您将使用一些ID作为ValueMember
并使用该ID进行CRUD操作。 但是,上面的示例再次表明,可以通过SelectedItem
属性获得更多不同的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.