每当从组合框中选择员工时,我想在文本框中显示员工的薪水

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 的组合框中选择“其他”时,如何显示输入表单?

使用组合框中的值编辑从列表框中选择的记录中的字段

如何从 Access 数据库中检索某些数据并将它们显示在组合框中

用户输入值时如何从文本框中填充消息框?

如何从html中的文本框中清除搜索输入? [复制]

组合框多选以在 Access 2016 中的文本框中显示所选项目