【问题标题】:how to get selected dataRow from combobox如何从组合框中获取选定的数据行
【发布时间】:2011-09-14 16:54:51
【问题描述】:

我有一个绑定到数据集的组合框。我正在尝试获取组合框的文本所代表的 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();
    }

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

【问题讨论】:

  • 好吧,我认为您只需从组合框中获取 ID 并将其传递到数据库并获取与该 ID 相关的所有数据。你说什么?
  • 唯一的 ID,当您在数据库中传递该 ID 时,您只会获得其数据。
  • 在flexoItems中只有这两列存在“Description”和“QtyOnHand”?
  • flexoItems 包含“ItemNumber”(显示在组合框中,以及“Description”和“QtyOnHand”。我仍然不明白您对 ID 的建议。
  • 好的,那么您想正确获取所选项目的全部数据吗?

标签: c# .net winforms combobox


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如何在 VB .NET VB2010、VB2012 上从 datacombo 的数据源中获取选定的行。

    如果您有一个带有datacombo 绑定到表单中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 论坛的选项。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 2019-11-16
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多