从SQL查询中获取结果(数字)

时间:2014-07-18 09:38:39

标签: sql sql-server vb.net

我希望从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中成功执行

1 个答案:

答案 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属性 这里的关键点是传递一个类型等于它将被应用的字段的参数 通过这种方式,您无需担心转换或如何在字符串连接中引用该值。