2014-01-25 38 views
1

我的表单上有一个combobox1,它由数据源绑定,它显示我数据表中的值。使用C#中组合框中的选定值传递参数

然后我有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

我的'combobox2'什么都不做。没有值填充,存储过程甚至不会触发。 – PriceCheaperton

+0

@RohitVats你能帮忙吗?我只需要知道如何填充我的'combobox2'并传入参数'databaseName' – PriceCheaperton

回答

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属性获得更多不同的值。

相关问题