在我的程序中,我将日期从DateTimePicker保存到全局变量中
My.Settings.date = dtpDate_do.Value.Date
。我正在使用此日期来比较我的数据库中的日期,但无论我正在改变什么,我总是会遇到语法错误。
这是我的疑问:
cmd.CommandText = "SELECT ID, order_date FROM orders WHERE order_date = " & My.Settings.date & " ORDER BY ID DESC"
我的数据库中的日期以欧盟格式存储,带点 - 17.2.2014
。任何人都可以给我一些帮助。
答案 0 :(得分:1)
永远不要像那样创建你的查询。始终没有任何异常使用参数。这样可以避免SQL注入,并确保正确格式化参数。
很抱歉不了解VB.NET,但它应该与此类似:
cmd.CommandText = "SELECT ID, order_date FROM orders WHERE order_date = @Date ORDER BY ID DESC"
cmd.Parameters.AddWithValue("@Date", My.Settings.data)
说明:使用@ParamName
作为参数的占位符创建查询。然后用值替换参数。确保应用具体类型的值(即不是对象)或/并提供数据类型。
答案 1 :(得分:0)
尝试在查询中使用如下参数:
cmd.CommandText = "SELECT ID, order_date FROM orders WHERE order_date = @date ORDER BY ID DESC";
cmd.Parameters.Add(new SqlParameter("@date", dateTimePicker.Value.Date));