如果书籍过期,我正在制作一个可以计算的命令。这是我的代码
if (duedate.Value < DateTime.Now)
{
cmd.CommandText = ("UPDATE Penalty SET Penalty = '"+ (dateTimePicker1.Text - duedate.Value)*50 +"' WHERE Title = '" + textBox3.Text + "'");
...
}
此代码未运行,因为它在(dateTimePicker1.Text - duedate.Value)
答案 0 :(得分:2)
撰写查询的优雅方式是参数化查询: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;
答案 1 :(得分:0)
您尝试从字符串中减去日期时间,请尝试以下
(dateTimePicker1.Value- duedate.Value).TotalDays*50
答案 2 :(得分:0)
伊克! Egads!神圣类型不匹配蝙蝠侠!
DateTime.Now
进行数学运算。 Read why here。50
进行硬编码。我认为这是罚款每天的美元金额。
答案 3 :(得分:0)
这项工作首先抛出/转换内部值,然后减去最后的外部投射。
强制转换为datetime(强制转换为datetime(dateTimePicker1.Text) - 强制转换为datetime(duedate.Value))* 50