2011-09-14 26 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에서이 두 열만 "Description"과 "QtyOnHand"가 있습니까? –

답변

9

데이터 바인딩을 사용하여 콤보 상자를 채우는 것으로 가정합니다. 이 경우 콤보 상자의 SelectedItem 속성을 사용하십시오. 아마 DataRowView가 포함되어 있으므로 이와 같은 코드를 사용할 수 있습니다.

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

VB.NET VB2010, VB2012의 datacombo 데이터 소스에서 선택한 행을 가져 오는 방법.

datacombo이 양식의 DataBindingSource에 바인딩 된 양식이있는 경우 VB 2010 이상에서 작동합니다. 나는 다른 곳을 찾을 수 없습니다 또는 여기에 해당 VB 포럼에 게시 할 수있는 옵션을 발견 이후

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 

내가 여기에이 정보를 추가했습니다.

관련 문제