人事管理系統中,員工福利表存儲員工編號(外鍵),但前端界面讓用戶選擇員工姓名。需在保存時將姓名轉換為對應編號。
using (SqlConnection conn = new SqlConnection(connStr)) {
conn.Open();
// 根據姓名查詢編號
string sql = "SELECT Id FROM Employee WHERE Name = @Name";
using (SqlCommand cmd = new SqlCommand(sql, conn)) {
cmd.Parameters.AddWithValue("@Name", txtEmployeeName.Text.Trim());
object result = cmd.ExecuteScalar();
if (result != null) {
int empId = Convert.ToInt32(result);
// 插入福利記錄
string insertSql = "INSERT INTO EmployeeWelfare (EmpId, WelfareType, Amount) VALUES (@EmpId, @Type, @Amt)";
using (SqlCommand insCmd = new SqlCommand(insertSql, conn)) {
insCmd.Parameters.AddWithValue("@EmpId", empId);
insCmd.Parameters.AddWithValue("@Type", cmbWelfareType.SelectedValue);
insCmd.Parameters.AddWithValue("@Amt", txtAmount.Text);
insCmd.ExecuteNonQuery();
}
} else {
MessageBox.Show("未找到該員工");
}
}
}