我的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进行应用程序开发..
请帮助我。
答案 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)