如何在SQL查询中执行操作
本文关键字:执行 操作 查询 SQL | 更新日期: 2023-09-27 18:31:23
我正在发出一个命令,如果书籍过期,该命令将计算罚款。 这是我的代码
if (duedate.Value < DateTime.Now)
{
cmd.CommandText = ("UPDATE Penalty SET Penalty = '"+ (dateTimePicker1.Text - duedate.Value)*50 +"' WHERE Title = '" + textBox3.Text + "'");
...
}
此代码未运行,因为它在(dateTimePicker1.Text - duedate.Value)
编写查询的优雅方法是参数化查询:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx
在伪代码中:
d1 = compute the Penalty value
然后,发出命令
cmd.CommandText = "UPDATE Penalty SET Penalty = @d1 WHERE Title = @d2";
cmd.Parameters.Add ("@d1", SqlDbType.DateTime).Value = d1;
您尝试从字符串中减去日期时间,请尝试以下操作
(dateTimePicker1.Value- duedate.Value).TotalDays*50
Ick!咔嚓!圣型错配蝙蝠侠!
- 参数化你的SQL查询,否则成为SQL注入攻击的素材!
- 不要尝试从字符串中减去日期。 这是无稽之谈。
- 不要用
DateTime.Now
做数学. 在此处阅读原因。 - 不要对
50
进行硬编码。 我假设这是每天罚款的美元金额。- 这应该在变量中传递,以便以后可以根据需要进行调整。
- 你需要先到一整天。
这项工作的,首先转换/转换内部值,然后减去最后的外部转换。
强制转换为日期时间 (强制转换为日期时间 (dateTimePicker1.Text) - 强制转换为日期时间 (duedate.值))*50