2013-10-25 4 views
1

데이터 집합에 추가 한 쿼리를 사용하여 콤보 상자를 채우시겠습니까? 쿼리는이 지금까지 내 코드이지만 그래서 난 업데이트내 데이터 집합의 쿼리로 콤보 상자 채우기


확인 작업을하지 않는 내가

를 코딩하는 방법에 대한 이전의 콤보 상자 selection.any 도움말에 따라 출력을 제공한다 내 코드는 이제 전체 테이블 입력을 제공하지만 cmbSchool에서 선택한 옵션에 따라 필터링되도록하고 싶습니다. 매개 변수를 사용하여 필터를 지금 어떻게 필터링합니까? 여기

ClassRoom 선택한 schoolid 그냥 레코드를 반환 할 DataTable을 입력하여

private void cmbSchool_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     int ischoolid = Convert.ToInt16(cmbSchool.SelectedValue); 

     try 
     { 
      cmbClassRoomName.DataSource = this.geared4MathDataSet.ClassRoom; 
      cmbClassRoomName.ValueMember = "ClassRoomID"; 
      cmbClassRoomName.DisplayMember = "ClassRoomName"; 
      //this.classRoomTableAdapter.FillBySchool(this.geared4MathDataSet.ClassRoom, ischoolid); 
      lblClassroomName.Visible = true; 
      cmbClassRoomName.Visible = true; 
     } 
     catch (System.Exception ex) 
     { 
      System.Windows.Forms.MessageBox.Show(ex.Message); 
     } 

    } 
+0

_doesn't 여기에 사용되는 이름을 조정할 수 있습니다. try catch가 있는데 오류 메시지는 무엇입니까? 또는 작동하지 않는 메시지가 없다면? – Steve

+0

오류 메시지 : 새 값 구성원에 바인딩 할 수 없습니다. 매개 변수 이름 : 값 –

+0

ValueMember 및 DisplayMember는 DataSource에있는 필드의 이름이어야합니다. Convert.ToString (.....)에 의해 반환 된 값은 무엇입니까? 오류를 설명하는 필드의 이름이 아닌 경우 임시 문자열 변수를 사용하여 Convert.ToString() 결과를 받고 디버거를 사용하여 반환 된 값을 확인하십시오. 지금 :) – Steve

답변

0

필터링하려면이

cmbClassRoomName.DataSource = this.geared4MathDataSet.ClassRoom 
           .Where(x => x.IDSchool == ischoolid) 
           .CopyToDataTable(); 

이, 물론, 당신이 가지고 있다고 가정 쓸 수 나의 새로운 코드 ClassRoom 테이블에 IDSchool라는 필드가 있습니다. 당신은 정말 많이 설명하지 WORK_ 할 올바른

+0

당신의 도움에 감사드립니다 :) 완벽하게 작동합니다. –

관련 문제