选择具有多个“和”的语句

时间:2014-12-01 12:36:16

标签: c# ms-access

我试图根据下面显示的sql查询从访问中的表中提取数据。我继续在" order"(1,2,3,4,5等)下出现错误,因为有多个"系统"对于一个位置,每个系统都有自己的订单。这就是为什么我首先选择系统然后根据选择的系统获取订单,但是我无法弄清楚错误。

 str = "Select last, first, comments From list Where ((Systems='" + comboBox12.Text +"')And (loc='" + locno + "')And (Order='" + Num1 + "'))";

Num1 = double数据类型并匹配访问时的类型。任何建议都是欣赏的。

更多背景,一个Loc有多个系统,每个系统都有分配给每个系统的名/姓,第一个/最后一个具有1到10的顺序。因此,对于相同的Loc,1-10可以重复多次多个系统。我不确定代码是否因订单而混淆。

1 个答案:

答案 0 :(得分:2)

除了您应该really parameterise that query阻止SQL注入的事实之外,您的语句的问题是Order属性。你混淆了SQL,因为它认为你的意思是ORDER BY

只需将其封在[]

中即可纠正此问题
str = "Select last, first, comments From list Where ((Systems='" + comboBox12.Text +"')And (loc='" + locno + "')And ([Order]='" + Num1 + "'))";

DEMO

您应该考虑不为列名使用保留字,例如lastfirstordersystem