使用两个datetimepicker的每月销售额

时间:2015-04-14 09:47:32

标签: .net winforms datetimepicker

我有两个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数据类型转换为日期时间数据类型会导致超出范围的值

有人可以建议正确的查询吗?

1 个答案:

答案 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