簡體   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