我需要帮助用 Tardy、halfdaypenalty 和 earlyout 减去 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();
}
}
也许我做错了什么 - 找不到办法
最佳答案
似乎您的“总计”变量在您的处理程序中应该有不同的名称。尝试使用,例如,_total:
double _total = 0;
//work with _total
total = _total + ...
关于c# - 当我从下拉列表中选择一个值来解决网格中的值时,它会覆盖它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52026845/