MS Access SELECT查询DatePart

时间:2014-03-09 03:54:44

标签: sql vb.net

我的SELECT查询到MS Access .mdb文件有问题。

我正在使用VB.Net并且必须发送像..

这样的查询
"SELECT d_date, d_tons, d_qty, d_cost FROM [deal] WHERE DatePart(""m"", [d_date]) = '" _
+ DTP.Value.Month.ToString + "' AND ([d_client] = '" + cBoxClient.Text + "')"

但它不起作用..编译时没有错误,但此查询无法选择任何数据。

DTP是DateTimePicker,我用DTP选择Month并将一些文本填入cBoxClient(ComboBox)

该查询有什么问题?我不知道,因为我总是使用MySQL,这是我第一次使用MS Access进行应用程序开发..

请帮助我。

1 个答案:

答案 0 :(得分:1)

使用参数化查询,这将使您免于sql注入和将特定数据格式(例如DateTime)转换为根据数据库特定文化有效的字符串表示形式的复杂性。例如:

Dim queryString = "SELECT d_date, d_tons, d_qty, d_cost FROM [deal] WHERE " & _ 
                  "DatePart(""m"", [d_date]) = ? AND ([d_client] = ?)"
OleDbCommand cmd = New OleDbCommand(queryString, connection)
cmd.Parameters.AddWithValue("@date", DTP.Value.Month)
cmd.Parameters.AddWithValue("@client", cBoxClient.Text)