2013-10-25 98 views
1

我想用我在數據集中添加的查詢填充組合框?查詢應該給我如何可以編寫它用我的數據集中的查詢填充組合框

根據以前的組合框selection.any幫助輸出,這是到目前爲止我的代碼,但它不想工作


好了,所以我更新我的代碼,但現在它給了我整個表格的輸入,但我希望它被我在cmbSchool中選擇的選項過濾。我現在如何使用參數來過濾它?

這裏是我的新代碼

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

_不想工作_確實沒有太多描述性。你有一個try catch,錯誤信息是什麼?或者如果沒有消息什麼不工作? – Steve

+0

錯誤消息是:無法綁定到新值成員。參數名稱:值 –

+0

ValueMember和DisplayMember應該是DataSource中存在的字段的名稱。什麼是您的Convert.ToString(.....)返回的值。如果它不是解釋錯誤的字段的名稱。使用臨時字符串變量來接收Convert.ToString()的結果並使用調試器檢查返回的值。 (順便說一句,你需要把它轉換成一個字符串是一個死的贈品,一些東西不是一個真正的字段名稱) – Steve

回答

0

要過濾ClassRoom類型的DataTable只返回與所選schoolid的記錄,你可以寫

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

這當然,假設你有ClassRoom表中名爲IDSchool的字段。您可以將此處使用的名稱調整爲正確的名稱

+0

謝謝你的幫助:)完美的作品 –