2017-02-24 37 views
0

我看到很多很多文章,但目前爲止沒有任何幫助。 我的組合框名稱是cbPlan。我想在它的顯示中檢索PlanName,但想要實際保存它的PlanID。 以下代碼顯示名稱和ID。我嘗試了ValueMember,DisplayMember屬性,但無法對它進行排序。 最後,即使這樣做,我將如何獲得在另一個表中插入PlanID?我會使用Convert.ToString(cbPlan.Text) - 這會帶來PlanName而不是ID。 請幫助 - 預先感謝您! :) P.S. PlanID的數據類型是int。顯示計劃名稱,但保存計劃ID並在組合框中檢索ID的值

private void cbPlan_Click(object sender, EventArgs e) 
     { 
      cbPlan.Items.Clear(); 

      string pullsub = "select PlanID,PlanName from fbkPlanMaster(nolock)"; 
      string connString = ConfigurationManager.ConnectionStrings["Dbconn"].ToString(); 
      SqlConnection connection = new SqlConnection(connString); // defining sql connection 
      SqlCommand cmd = new SqlCommand(pullsub, connection); 
      cmd.CommandText = pullsub; 
      connection.Open(); 
      SqlDataReader drd = cmd.ExecuteReader(); 
      while (drd.Read()) 
      { 

       cbPlan.Items.Add(drd["PlanID"]); 
       cbPlan.Items.Add(drd["PlanName"]); 
       cbPlan.ValueMember = "PlanID"; 
       cbPlan.DisplayMember = "PlanName"; 


      } 
     } 
+0

是winform還是webform? –

回答

0

首先修改您的方法來添加項目到您的組合框不應該使用Reader。其次,如果您不想顯示它,爲什麼要添加PlanID? 此代碼可以幫助你......

cbPlan.DataSource = dt; 
cbPlan.ValueMember = "PlanID"; 
cbPlan.DisplayMember = "PlanName"; 

你應該首先從數據庫中獲得數據到數據表的一些或數據集作爲上述cbPlan.DataSource = DT;

這會將您的ID保存爲ValueMember作爲ID,並且其顯示的文本將爲PlanName。希望這可以幫助你。