2012-05-04 6 views
1

친구, 내 datagridview에서 열 색인 1로 datagridviewcomboboxcolumn을 사용하고 있습니다. 나는 액세스 데이터베이스 테이블에서 데이터를 페치하고 다음과 같은 방식으로 datagridviewcomboboxcolumn을 채워했습니다DataGridviewcomboboxcolumn의 ValueMember 값을 얻는 방법

dgView.Columns.Add(cmbBusCode); 

 cmbBusCode.DisplayIndex = 1; 
     cmbBusCode.Width = 200; 
     cmbBusCode.Name = "Code"; 
     cmbBusCode.HeaderText = "Code"; 

그리고 추가이 칼럼 : 다음

for (int i = 0; reader.Read(); i++) 
     { 
      cmbBusCode.Items.Add(reader["BUSINESS_CODE"] + "-" + reader["BUSINESS_DESCRIPTION"]); 
      cmbBusCode.ValueMember = "BUSINESS_CODE"; 
     } 

나는이 편지를 쓰고있어 콤보 박스가 채워지고 목록에서 하나를 선택할 수 있습니다. 이제 데이터를 저장할 때 선택한 항목의 ValueMember를 가져 오려고합니다. 내가 코드를 다음 사용하고 있지만, 그것은 필드의 문자열 표현을주고이 값을 얻으려면 "BUSINESS_CODE는"하지 value..Please은 .. 그 선택한 항목의 ValueMemeber를 얻을 수 있도록

foreach (DataGridViewRow row in dgView.Rows) 
    { 
     string cd = row.Cells["Code"].Value.ToString(); 
    } 

답변

0

은 "항목을 도와 "열을 추가하는 중"BUSINESS_CODE "열 (본질적으로 추가하는 항목은 단순히 문자열 임)이 없으므로 작동하지 않습니다.

여러 열이 포함 된 항목을 할당하면됩니다. 하나는 BUSINESS_CODE 열이어야하며 (이 열은 DataGridView에있는 기본 필드의 값이기 때문에) 다른 하나는 현재 추가중인 연결 값 (DisplayMemberValueMember)을 포함하는 표시 열이어야합니다).

가장 쉽게 형식화 된 데이터 세트를 작성하고 설명 된 두 개의 열이 들어있는 테이블을 추가하고 데이터 판독기의 데이터로 테이블을 채우는 것이 가장 쉽습니다.

그런 다음 테이블을 열의 데이터 원본으로 추가하십시오.

-1

string 대신 DataGridViewComboBoxCellcmbBusCode.Items 컬렉션에 추가 할 수 있습니다. 그런 다음 셀에 Value을 지정할 수 있습니다. 이 방법이 효과가있을 지 확신 할 수는 없지만 한 번 사용해 볼 가치가 있습니다.

+0

어? 'cmbBusCode'는'DataGridViewComboBoxCell'입니다! 그것의'Items' 콜렉션은 표시되고 선택할 수있는 아이템들의리스트를 취하기로되어 있습니다. 아이템으로 전달 된 객체가'DisplayMember' 및'ValueMember'의 값에 해당하는 멤버를 포함하면이 멤버의 값은 표시되거나 기본 데이터 객체의 필드에 할당됩니다. 당신이 제안하고있는 것은 시도가 가치가 없다는 것입니다. 이것은 일이 어떻게 작동하는지에 달려 있지 않습니다. ... –

+0

@ThorstenDittmar, 예 cmbBusCode는 DataGridViewComboBoxColumn이며 위에서 언급 한 코드를 사용하여 채워졌습니다. 목록에서 선택한 항목에 해당하는 ValueMember를 가져오고 싶었습니다.하지만 응답이 없습니다. – Sukanya

+0

내 대답을 읽었습니까? 아이템에는 'ValueMember' 속성에 지정한 이름의 속성이 없습니다. 내 대답을 읽으십시오. 비유하자면 :'button_Click'이라는 메소드를 작성할 수 있습니다. 그러나 버튼의'Click' 이벤트에 지정하지 않으면 호출되지 않습니다. ValueMember에 속성의 이름을 할당했기 때문에 값을 얻지 못했지만 그 이름의 객체는 기본 객체에 없습니다. –