我需要帮助减去MonthlySalary迟到、半天惩罚和提早,但要加上加班奖励
表格示例
CREATE TABLE PAYROLL
(
RegEmpID INT,
PayID INT IDENTITY (100, 1) PRIMARY KEY,
TardyPenalty DECIMAL,
HalfdayPenalty DECIMAL,
EarlyOutPenalty DECIMAL,
MonthlySalary DECIMAL,
OvertimeReward DECIMAL
)
我似乎无法找到单独或全部解决它们的方法
所以基本上就是这样,在asp.net中有一个下拉列表,其中每一个都有一个值,特别是late = 50 halfday = 50 earlyout = 50。薪水已经有一个设定值,每次我尝试它似乎都会覆盖总数与他们的价值。
这是代码
protected void btnupdatepay_Click(object sender, EventArgs e)
{
double total;
double tardy;
double half;
double early;
double payroll;
double overtime;
total = 0;
tardy = 0.0;
half = 0.0;
early = 0.0;
payroll = 0.0;
overtime = 0.0;
if (Penalty.SelectedValue == "Tardy")
{
tardy = 50;
total = total - tardy;
}
if (Penalty.SelectedValue == "Half Day")
{
half = 100;
total = total - half;
}
if (Penalty.SelectedValue == "Early Out")
{
early = 50;
total = total - early;
}
if (Penalty.SelectedValue == "Overtime")
{
overtime = 100;
total = total + overtime;
}
total = total + overtime - half - early - tardy;
int rowsAffected;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);
SqlCommand cmd = new SqlCommand("UPDATE PAYROLL SET [TardyPenalty] = @TardyPenalty, [HalfdayPenalty] = @HalfdayPenalty, [EarlyOutPenalty] = @EarlyOutPenalty , [OvertimeReward] = @OvertimeReward, [MonthlySalary]= @MonthlySalary WHERE [PayID] = @PayID", con);
cmd.Parameters.AddWithValue("@TardyPenalty", tardy);
cmd.Parameters.AddWithValue("@HalfdayPenalty", half);
cmd.Parameters.AddWithValue("@EarlyOutPenalty", early);
cmd.Parameters.AddWithValue("@PayID", txtpayid.Text);
cmd.Parameters.AddWithValue("@OvertimeReward", overtime);
cmd.Parameters.AddWithValue("@MonthlySalary", total);
try
{
con.Open();
rowsAffected = cmd.ExecuteNonQuery();
datapay.DataBind();
}
finally
{
con.Close();
}
}
也许我做错了什么 - 找不到方法