如何从组合框中获取选定的dataRow

时间:2011-09-14 16:54:51

标签: c# .net winforms combobox

我有一个绑定到数据集的组合框。我试图让DataRow得到组合框代表的文本,但我找不到它。我尝试了以下内容:

 private void cboItems_SelectedIndexChanged(object sender, EventArgs e)
    {
        DataTable flexoItems = (cboItems.DataSource as DataTable);

        DataRow row = flexoItems.Rows.Find(cboItems.Text);

        //DataView view = new DataView(flexoItems);
        //DataRow row = flexoItems.Rows[view.Find(cboItems.Text)];

        lblItemDesc.Text = row["Description"].ToString();
        lblTotalQty.Text = row["QtyOnHand"].ToString();
    }

我觉得我只是错过了这个。如何从组合框选择的行中获取其他值?

2 个答案:

答案 0 :(得分:13)

我假设您使用数据绑定来填充组合框。在这种情况下,使用组合框的SelectedItem属性。它可能包含一个DataRowView,因此您可以使用这样的代码。

DataRowView vrow = (DataRowView)cboItems.SelectedItem;
DataRow row = vrow.Row;

答案 1 :(得分:0)

如何从VB .NET VB2010,VB2012上的datacombo数据源中选择行。

如果您的表单中datacombo的{​​{1}}与表单中的DataBindingSource绑定,那么这应该适用于VB 2010及以上版本。

Dim dr As DataRowView = LOCAL_FORMBindingSource.Current
Dim r As DataSet.MY_TABLERow = CType(dr.Row, DataSet.MY_TABLERow)

MY_FIELDTextBox.Text = r.MY_FIELD

我已在此处添加此信息,因为我无法在其他任何地方找到它或在此处找到任何选项将其发布到相应的VB论坛。