2016-04-29 60 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()); 
      } 
     } 
相关问题