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

这样可以确保只罚款一次。

你没有对精细的时间表解释太多,所以我做了一些假设。