Vb.net 缺少运算符帮助VB

Vb.net 缺少运算符帮助VB,vb.net,ms-access,Vb.net,Ms Access,语法错误此行中的查询表达式'doj>=03/Jan/2016和'doj中缺少运算符 SQL = "... Where doj >=#" & DateTimePicker1.Text & " # and <=#" & DateTimePicker2.Text "#" 此查询使用参数,不受Sql注入的约束,使用查询中涉及的列所期望的正确数据类型传递参数,不会因命令文本中的串联而造成混淆 编辑 根据下面的注释,如果您想知道两个

语法错误此行中的查询表达式'doj>=03/Jan/2016和'doj中缺少运算符

SQL = "... Where doj >=#" & DateTimePicker1.Text & " # and <=#" & DateTimePicker2.Text "#"                   
此查询使用参数,不受Sql注入的约束,使用查询中涉及的列所期望的正确数据类型传递参数,不会因命令文本中的串联而造成混淆

编辑 根据下面的注释,如果您想知道两个日期之间具有doj值的行数,那么您应该更改查询并引入


该命令执行方法ExecuteScalar而不是ExecuteReader,因为只有COUNT函数计算的值返回,而不是整个数据记录。

使用SQL参数,而不是将字符串粘在一起,如果DB有doj作为日期,则使用DateTimePicker1等日期时间类型。值错误与代码不完全匹配代码显示错误中未提及的结束代码缺少doj字段,在小于部分的AND TANKS Sir中用于快速响应。我从tbluser中尝试了这个SQL=select*,其中DOJ>='&DateTimePicker1。Value&'和DOJ ticks'不是通用的SQL分隔符。仅与文本一起使用,日期时间不是text/string谢谢。终于起作用了。但是它在label.text中给了我错误的答案。先生,我是初学者,谢谢你的指导。上面是我的项目链接,从上一个问题来看,您似乎想知道“两个日期之间具有doj值的行数”。我说的对吗?现在更新答案
SQL = "... Where doj >=#" & DateTimePicker1.Text & " # and <=#" & DateTimePicker2.Text "#"                   
 SQL = "select * from tbluser Where doj >= @p1 and doj <= @p2"
 acscmd = New OleDbCommand(SQL, acsconn)
 acscmd.Parameters.Add("@p1", OleDbType.Date).Value = DateTimePicker1.Value.Date
 acscmd.Parameters.Add("@p2", OleDbType.Date).Value = DateTimePicker2.Value.Date
 acsdr = acscmd.ExecuteReader
 .....
 SQL = "select COUNT(*) from tbluser Where doj >= @p1 and doj <= @p2"
 acscmd = New OleDbCommand(SQL, acsconn)
 acscmd.Parameters.Add("@p1", OleDbType.Date).Value = DateTimePicker1.Value.Date
 acscmd.Parameters.Add("@p2", OleDbType.Date).Value = DateTimePicker2.Value.Date
 Dim result as Integer = acscmd.ExecuteScalar
 .....