繁体   English   中英

C# 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM