2017-02-24 1 views
0

나는 많은 기사를 보았지만 지금까지는 도움이되지 않았습니다. 내 ComboBox 이름은 cbPlan입니다. PlanName을 표시하고 싶지만 실제로 PlanID를 잡고 싶습니다. 다음 코드는 이름과 ID를 모두 표시합니다. ValueMember, DisplayMember 속성을 시도했지만 아직 정렬 할 수 없습니다. 마지막으로, 이것이 작동하더라도 다른 테이블에 PlanID를 삽입하려면 어떻게해야합니까? 나는 Convert.ToString (cbPlan.Text)을 사용할 것인가? 이것은 PlanName을 가져오고 ID는 가져 오지 않을 것이다. 도와주세요 - 큰 감사드립니다! :) 추신 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이됩니다. 희망이 당신을 도와줍니다.