簡體   English   中英

使用C#在MS Access中選擇多個表

[英]Selecting Multiple Tables in MS Access using C#

大家好,我對從不同的表中選擇多個字段並將其綁定到一個結果中感到有些困惑,為了讓您更好地理解它,我在下面發布了我的代碼和ERD。 感謝您的答復。 請告訴我我在哪里錯了tnx :)

這是我的ERD:

在此處輸入圖片說明

這是代碼:

try
        {
            OleDbConnection Con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\MotoFix.mdb;");
            OleDbCommand command = new OleDbCommand();
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            DataTable dt = new DataTable();
            Con.Open();
            command.CommandText = String.Format("SELECT fn.Customer + ' ' + mi.Customer + ' ' + ln.Customer as [CUSTOMER FULLNAME], fn.Cashier + ' ' + mi.Cashier + ' ' + ln.Cashier as [CASHIER FULLNAME], prodName.Product as [PRODUCT NAME], prodDescription.Product as [PRODUCT DESCRIPTION], prodBrand.Product as [PRODUCT BRAND], prodQuantity.Transaction as [PRODUCT QUANTITY], prodTotalPrice.Transaction as [SUBTOTAL], job.Personnel as [Referral] FROM Product , [Order] , [Transaction] , Customer , Cashier , Personnel  WHERE prodCode.Product = ProdCode.Order AND orderNo.Order = orderNo.Transaction AND pID.Personnel = pID.Transaction AND custID.Customer = custID.Transaction AND userID.Cashier = userID.Transaction AND sDate.Transaction = '{0}'", strDate);
            command.Connection = Con;
            adapter.SelectCommand = command;
            adapter.Fill(dt);
            Con.Close();
            Con.Dispose();
            gridViewTransac_1.DataSource = dt;

        }
        catch (Exception ex)
        {
            XtraMessageBox.Show(ex.Message);
        }

附加信息:沒有為一個或多個必需參數提供值。

我不是一個好的SQL查詢生成器,但不是TableName.FieldName卻不是嗎?

無論如何,嘗試將TableName放在首位:

SELECT Customer.fn + ' ' + customer.mi + ' ' + customer.ln as [CUSTOMER FULLNAME]
     , Cashier.f. + ' ' + Cashier.mi + ' ' + customer.ln as [CASHIER FULLNAME]
     , Product.prodName as [PRODUCT NAME]
     , Product.prodDescription as [PRODUCT DESCRIPTION]
     , Product.prodBrand as [PRODUCT BRAND]
     , Transaction.prodQuantity as [PRODUCT QUANTITY]
     , Transaction.prodTotalPrice as [SUBTOTAL]
     , Personnel.job. as [Referral] 

FROM   Product 
     , [Order] 
     , [Transaction] 
     , Customer
     , Cashier 
     , Personnel  

WHERE Product.prodCode = Order.ProdCode 
  AND Order.orderNo = Transaction.orderNo 
  AND Personnel.pID= Transaction.pID 
  AND Customer.custID = Transaction.custID 
  AND Cashier.userID = Transaction.userID 
  AND Transaction.sDate = @transDate 

對於@transDate,您應該添加:

command.Parameters.AddWithValue("@transDate", someDate);

或者你可以像你一樣做

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM