2011-03-12 107 views
0
Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT [counts] FROM [a1_holds] WHERE (dates ='" & TextBox1.Text & "' BETWEEN from_date AND to_date) AND service ='" & lab5.Text & "' ORDER BY [id] ASC", SQLData) 

错误:Near之间这个查询有什么问题?

+0

什么是结束禁忌**)**在ASC之后**)** – 2011-03-12 06:48:52

+0

首先,请考虑在查询中使用参数。它会为你节省很多头痛,并且使用它们有很多好处。其次,你的“where”条款没有多大意义。您的本质是,在您的where子句中:WHERE(日期= '01/01/2011'from_date和to_date之间')。也许它应该是这样的:'WHERE(从_date到to_date之间的日期)'并且建立你的'from_date'和'to_date'来满足你的需要。你能给我们更多关于你想要做什么的信息吗? – 2011-03-12 06:59:15

+1

尝试使用“'); DROP DATABASE; - ”的日期进行测试,看看是否解决了问题:)严重的是,避免SQL注入。但正如其他人所说,删除“日期=”文本,它应该工作。 – beach 2011-03-12 07:11:04

回答

2
Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT [counts] FROM [a1_holds] WHERE ('" & TextBox1.Text & "' BETWEEN from_date AND to_date) AND service ='" & lab5.Text & "' ORDER BY [id] ASC", SQLData) 
1

WHERE (dates = '...' BETWEEN ... AND ...)

是一个语法错误的语法不正确。或者:('...' BETWEEN ... AND ...)(dates = '...')