VB.net和Sql:需要更正此查询

时间:2014-07-22 09:12:53

标签: sql vb.net ms-access

我使用此查询并且我没有得到正确的结果

我的表:http://i.stack.imgur.com/CuBOM.png

我的应用:http://i.stack.imgur.com/1EaQs.png

用户将选择2个日期,结果是两个日期之间所有日期的班次总和

这是我的代码:

    cn.Open()
    cmd.CommandType = CommandType.Text
    cmd.CommandText = " SELECT SUM(shift1) + SUM(shift2) + SUM(shift3) as shifts 
                        FROM Statistique 
                        where  nom_produit =  '" & ComboBox4.Text & "' 
                        and  P_Date BETWEEN #" & DateTimePicker2.Text & "#  
                        AND #" & DateTimePicker3.Text & "# 
                        group by nom_produit "
    cmd.Connection = cn
    Dim st As Integer = cmd.ExecuteScalar
    cn.Close()
    Label36.Text = st
    Label35.Text = st + st / 100 * 20

并且此查询在MS Access 2007中正常工作:

SELECT SUM(shift1) + SUM(shift2) + SUM(shift3) AS shifts 
  FROM Statistique
 WHERE nom_produit = 'BAGS  1000x700' 
   AND p_date BETWEEN #10/07/2014# AND #16/07/2014#
 GROUP BY nom_produit

现在我希望在我的VB.net项目中使用它。

编辑:当我使用单引号代替#i时出现此错误:oledbexception未处理:输入dedonnées不兼容的dans l'expressionducritère。

1 个答案:

答案 0 :(得分:0)

使用DateTimePicker CDate()函数解决了问题

喜欢这个 CDate("& DateTimePicker2.Text&")

并制作单引号'而不是#

感谢大家的帮助,特别感谢@NeverHopeless