2011-09-14 78 views
1

我有一個綁定到數據集的組合框。我試圖讓DataRow的組合框代表文本,但我找不到它。我試過以下內容:如何從組合框中選擇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(); 
    } 

我覺得我只是想念這個。如何從組合框選擇的行中獲取其他值?

+0

嗯,我想你只是從組合框中獲得ID並將其傳遞到數據庫並獲取與該ID相關的所有數據。你說的話? –

+0

唯一的ID,當您在數據庫中傳遞該ID時,您只能獲取其數據。 –

+0

在flexoItems中只有這兩列存在「描述」和「QtyOnHand」? –

回答

9

我假設你使用數據綁定來填充組合框。在這種情況下,使用組合框的SelectedItem屬性。它可能會包含一個DataRowView,所以你可以使用這樣的代碼。

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

如何在VB .NET VB2010,VB2012中從datacombo的數據源中獲取選定的行。

這應該適用於VB 2010及更高版本,如果您在窗體中綁定到DataBindingSource的表單有datacombo

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論壇在這裏添加了此信息。