我希望从SQL查询中获得一个简单的结果来进行一些计算
我的代码:
cn.Open()
cmd.CommandType = CommandType.Text
cmd.CommandText = " SELECT shift1 + shift2 + shift3 as shifts FROM Statistique where nom_produit= '" & ComboBox3.Text & "' and p_date like '" & Date1.Text & "' "
cmd.Connection = cn
Dim st As Integer = cmd.ExecuteScalar
MsgBox(st, 0 + 32, "Your Value !")
cn.Close()
"的变化"是我需要的。现在我只得到0
只是为了让您知道,该查询在MS Access 2007中成功执行
答案 0 :(得分:2)
我建议您更改查询以使用参数化查询。请记住,日期不是字符串。为where子句传递字符串通常会导致语句不正确
cn.Open()
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT shift1 + shift2 + shift3 as shifts " & _
"FROM Statistique where nom_produit=? AND p_date = ?"
cmd.Parameters.AddWithValue("@p1", ComboBox3.Text)
cmd.Parameters.AddWithValue("@p2", Date1.Value)
cmd.Connection = cn
Dim st As Integer = cmd.ExecuteScalar
MsgBox(st, 0 + 32, "Your Value !")
cn.Close()
当然,这假定您的字段p_date是MS-Access中的DateTime值,并且您键入的日期和TIME值可以正确映射到数据库中的字段。
编辑如果Date1是DateTimePicker,则只需使用Value属性 这里的关键点是传递一个类型等于它将被应用的字段的参数 通过这种方式,您无需担心转换或如何在字符串连接中引用该值。