我使用此查询并且我没有得到正确的结果
我的表: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。
答案 0 :(得分:0)
使用DateTimePicker CDate()函数解决了问题
喜欢这个 CDate("& DateTimePicker2.Text&")
并制作单引号'而不是#
感谢大家的帮助,特别感谢@NeverHopeless