2012-10-17 3 views
2

에서 선택한 항목은 간단합니다 : 콤보 상자에서 선택한 항목을 <em>문자열</em> 찾기 연결 콤보

String selectedString = comboBox1.SelectedItem.ToString(); 

콤보의 선택 항목을 인덱스 찾기 상자도 간단하다

int selectedIndex = comboBox1.SelectedIndex; 

그러나 연결된 데이터베이스 테이블 콤보 상자에서 선택한 항목의에 인덱스 을 찾는이의하지 않습니다 그래서 사소한 EEM :

DataTable dt = new DataTable(); 
    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tblContacts ORDER BY colFirstname", sqlConnection); 
    da.Fill(dt); 
    for (int i = 0; i < dt.Rows.Count; i++) 
    { 
     String addressRow = (String)dt.Rows[i]["colFirstname"]; 
     comboBox1.Items.Add(addressRow); 
    } 

어떻게 든 선택한 항목 문자열에서 DB 테이블에 인덱스를 유도 해 낼 수 있지만 그 고유성을 보장하지 않습니다.

콤보 상자에서 선택한 항목의 연결된 데이터베이스 테이블 을 올바르게 찾는 방법은 무엇입니까?

답변

2

귀하의 콤보 박스 선택 색인은 DataTable의 색인입니다.

+0

정말인가요? SELECT 문에서 'ORDER BY colFirstname'을 확인하십시오 ... –

+0

데이터베이스에서 orderby가 실행됩니다. 따라서 가져온 데이터는 이미 정렬되어 있습니다. 이제 데이터 테이블을 반복하여 콤보 상자에 데이터를 추가합니다. –

+1

Gotcha! 'int selectedIndexInTable = (int) dt.Rows [comboBox1.SelectedIndex] [ "colId"];'감사합니다 +1. –

관련 문제