我有两个datetimepicker和一个按钮 我希望在两个datetimepickers
中选择每月或wahtever日期的销售以下是我的询问:
ad2 = New SqlDataAdapter(
"select sum(amt) from TailorLedger where date between'" &
CDate(DateTimePicker1.Value.ToShortDateString) &
"' AND '" &
CDate(DateTimePicker2.Value.ToShortDateString) &
"'", con)
但是按下按钮会显示以下错误:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值
有人可以建议正确的查询吗?
答案 0 :(得分:0)
您应始终参数化SQL查询以避免SQL Injection。
在SQL参数上使用强类型后,您应该能够解决您所看到的问题。为了让你开始,这里有一个片段(未编译或测试):
SqlDataAdapter myCommand = new SqlDataAdapter("select sum(amt) from TailorLedger where date between @par1 and @par2", connection);
myCommand.SelectCommand.Parameters.Add("@par1", SqlDbType.DateTime);
myCommand.SelectCommand.Parameters["@par1"].Value = yourFirstDate;
myCommand.SelectCommand.Parameters.Add("@par2", SqlDbType.DateTime);
myCommand.SelectCommand.Parameters["@par2"].Value = yourSecondDate;
如果仍然无效,您应该调查正在使用的文化,有关详细信息,请参阅此post。