![](/img/trans.png)
[英]Getting a syntax error (missing operator) in query expression in C# for MS Access
[英]Syntax Error (Missing Operator) in query expression with Multiple Inner Join in C# MS Access
我正在使用内部联接来联接 3 个表。 但是当我执行这个时,我得到了错误
查询表达式 'a.Group_ID = b.Group_ID INNER JOIN VendorList AS c ON a.Vendor_Id = c.Vendor_I' 中的语法错误(缺少运算符)
如何通过 MS Access 在 C# 中使用多个内部联接?
str = "Select a.ID, b.Group_Name, a.Voucher_No, a.Bill_No, a.Date, c.Vendor_Name, a.Amount FROM BillTable a INNER JOIN GroupName AS b ON a.Group_ID = b.Group_ID INNER JOIN VendorList AS c ON a.Vendor_Id = c.Vendor_Id ";
da = new OleDbDataAdapter(str, cn);
该语法虽然被任何比 Access 更强大的数据库所接受,但在处理 JET Sql 时并不完全正确。在这种情况下,您需要在每个连接组周围添加圆括号,以帮助 JET 解析器理解查询。
所以你需要写这个
str = @"Select a.ID, b.Group_Name, a.Voucher_No, a.Bill_No, a.[Date], c.Vendor_Name, a.Amount
FROM ((BillTable a INNER JOIN GroupName AS b ON a.Group_ID = b.Group_ID)
INNER JOIN VendorList AS c ON a.Vendor_Id = c.Vendor_Id) ";
请注意,最外部的一对圆括号并不是真正需要的。 我把它们放在那里只是为了展示如果需要更多连接时如何添加它们。
我还认为 a.Date 将是另一个异常的原因,因为Date 是保留关键字。 您将再次遇到语法错误。 您可以避免像在a.[Date]中那样在 Date 周围添加方括号
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.