C# 我如何按日期和来自数据库的数据进行计算
C# how can i compute fine by date and data coming from the database
我怎样才能计算得好?
by date1 < date2
date1是数据库中的日期,date是现在的日期如何计算
并防止在同一日期重新计算它,这是我用来计算的唯一代码。
private void frmMainForm_Load(object sender, EventArgs e)
{
DateTime datetoday = DateTime.Today;
conn.Open();
string getdate = "update tblSBorrowList set [Fine] =Fine+5 where DATEADD(day,7,[Borrowed Date]) < '@datenow'";
SqlCommand cmd = new SqlCommand(getdate, conn);
cmd.Parameters.AddWithValue("@datenow", datetoday);
cmd.ExecuteNonQuery();
conn.Close();
}
这行得通,但每次我停止并再次 运行 程序时,它都会添加 5。
提前谢谢你
我建议您需要将另一列 FineApplied
添加到您的 table。
您的 SQL 条件在 7 天后 始终 为真,因此当您 运行 你的代码
例如,如果您 运行 每天这样做:
逾期 6 天:无罚款
逾期7天:加罚款
逾期8天:加罚款
...
.
逾期100天:加罚款
将您的查询更改为:
update tblSBorrowList
set
[Fine] =Fine+5,
[FineApplied] = 1
where [Borrowed Date] < DATEADD(day,-7,GETDATE())
and [FineApplied] = 0
这样可以确保只罚款一次。
你没有对精细的时间表解释太多,所以我做了一些假设。
我怎样才能计算得好?
by date1 < date2
date1是数据库中的日期,date是现在的日期如何计算 并防止在同一日期重新计算它,这是我用来计算的唯一代码。
private void frmMainForm_Load(object sender, EventArgs e)
{
DateTime datetoday = DateTime.Today;
conn.Open();
string getdate = "update tblSBorrowList set [Fine] =Fine+5 where DATEADD(day,7,[Borrowed Date]) < '@datenow'";
SqlCommand cmd = new SqlCommand(getdate, conn);
cmd.Parameters.AddWithValue("@datenow", datetoday);
cmd.ExecuteNonQuery();
conn.Close();
}
这行得通,但每次我停止并再次 运行 程序时,它都会添加 5。 提前谢谢你
我建议您需要将另一列 FineApplied
添加到您的 table。
您的 SQL 条件在 7 天后 始终 为真,因此当您 运行 你的代码
例如,如果您 运行 每天这样做:
逾期 6 天:无罚款 逾期7天:加罚款 逾期8天:加罚款 ... . 逾期100天:加罚款
将您的查询更改为:
update tblSBorrowList
set
[Fine] =Fine+5,
[FineApplied] = 1
where [Borrowed Date] < DATEADD(day,-7,GETDATE())
and [FineApplied] = 0
这样可以确保只罚款一次。
你没有对精细的时间表解释太多,所以我做了一些假设。