每当从组合框中选择员工时,我想在文本框中显示员工的薪水
Posted
技术标签:
【中文标题】每当从组合框中选择员工时,我想在文本框中显示员工的薪水【英文标题】:I want to show the salary of employee in textbox whenever the employee selected from combobox 【发布时间】:2021-12-02 03:56:49 【问题描述】: public void GET_Salary()
string query = "Select Salary from Employee_Finance Where
Employee_Name = @Employee_Name";
SqlDataAdapter sda = new SqlDataAdapter(query, conn);
sda.SelectCommand.Parameters.AddWithValue("@Employee_Name",
(object)Employeename_comboBox.SelectedItem ?? DBNull.Value);
DataTable data = new DataTable();
sda.Fill(data);
if (data.Rows.Count > 0)
int salary = Convert.ToInt32(data.Rows[0]["Salary"]);
salarytextBox.Text = salary.ToString();
//但是当我选择员工时,它没有显示他的薪水
【问题讨论】:
您的组合框上是否定义了一个您希望触发的事件?事件是否触发?那甚至调用此方法吗?这里给出的信息很少,而关于为什么这个“不起作用”的可能性却很多。 不要使用addwithvalue 旁注:不要缓存您的连接对象,在需要时创建并使用using
进行处理
【参考方案1】:
在 SelectionChangeCommitted 事件中调用您的 GET_Salary() 函数并获取您的组合框的选定值,如下所示:
string _Employee_Name=Employeename_comboBox.SelectedItem.ToString();
完整代码:
private void cmbNationalCode_SelectionChangeCommitted(object sender, EventArgs e)
string _Employee_Name=Employeename_comboBox.SelectedItem.ToString();
GET_Salary( _Employee_Name );
public void GET_Salary( string Employee_Name)
string query = "Select Salary from Employee_Finance Where
Employee_Name = @Employee_Name";
SqlDataAdapter sda = new SqlDataAdapter(query, conn);
sda.SelectCommand.Parameters.AddWithValue("@Employee_Name", Employee_Name ?? DBNull.Value);
DataTable data = new DataTable();
sda.Fill(data);
if (data.Rows.Count > 0)
int salary = Convert.ToInt32(data.Rows[0]["Salary"]);
salarytextBox.Text = salary.ToString();
【讨论】:
以上是关于每当从组合框中选择员工时,我想在文本框中显示员工的薪水的主要内容,如果未能解决你的问题,请参考以下文章
当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?