2016-04-29 59 views
0

另一個值它顯示的EmpID在組合框C#中我如何可以選擇每個時間我單擊組合框項目

名單

我要顯示在組合框中EmployeeName但它會得到的EmpID

這裏是我的代碼

private void EmployeeTimecard_Load(object sender, EventArgs e) 
{ 
    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CSPOSWare.Reports.Properties.Settings.chaplinConnectionString"].ConnectionString)) 
    { 
     try 
     { 
      conn.Open(); 
      using (SqlCommand cmd = new SqlCommand("Select (LastName + ', ' + FirstName) AS Employee, EmpID from Employee ", conn)) 
      using (SqlDataReader rdr = cmd.ExecuteReader()) 
      { 
       while (rdr.Read()) 
       { 
        GrpEmpCBox.Items.Add(rdr["EmpID"].ToString()); 
       } 
      } 
     } 
     catch { } 
    } 
    this.FormBorderStyle = FormBorderStyle.FixedSingle; 
    this.GrpEmpCBox.DropDownStyle = ComboBoxStyle.DropDownList; 
    chkAll.Checked = true; 
} 

This is where i get the employee name

This is where i want to get the empID from the Employee table

回答

0

您正在將值讀入您的組合框中;

GrpEmpCBox.Items.Add(rdr["EmpID"].ToString()); 

EmpID應改爲你創建Employee字符串。

但是,您可能想要同時讀取,顯示名稱和ID作爲值。

+0

是的,我能做到這一點,但在這裏我想要得到的數據表中的記錄只有列的EmpID 這是我的問題.. –

+0

好吧,那麼你將需要向我們展示了一些表模式和示例數據,以便我們可以看到如何返回員工姓名。 – William

2

使用如下:

while (rdr.Read()) 
{ 
    ListItem comboItem = new ListItem(); 
    comboItem.Text = rdr["Employee"].ToString(); 
    comboItem.Value = rdr["EmpID"].ToString(); 
    GrpEmpCBox.Items.Add(comboItem); 
} 

所以,你可以使用下面的代碼從下拉值:

string selectedText = GrpEmpCBox.SelectedItem.ToString(); // which gives you the Employee 
string selectedValue = GrpEmpCBox.SelectedValue;// gives you EmpID 

智能選項綁定使用這樣一個DataTable中的組合框:

string query = "Select (LastName + ', ' + FirstName) AS Employee, EmpID from Employee "; 
SqlDataAdapter da = new SqlDataAdapter(query, conn); 
conn.Open(); 
DataTable dt = new DataTable(); 
da.Fill(dt); 
GrpEmpCBox.DisplayMember = "Employee"; 
GrpEmpCBox.ValueMember = "EmpID "; 
GrpEmpCBox.DataSource = dt; 
GrpEmpCBox.DataBind(); 
+0

私人字符串GetEmp() { return GrpEmpCBox.SelectedValue.ToString(); } 如果我使用SelectedValue,它會顯示「一個未處理的類型爲'System.NullReferenceException'的異常」 –

0

假設empname是所需的員工姓名

using (SqlDataReader rdr = cmd.ExecuteReader()) 
     { 
      while (rdr.Read()) 
      { 
       GrpEmpCBox.Items.Add(rdr["EmpName"].ToString()); 
      } 
     } 
相關問題