2013-02-26 86 views
0

我有以下3個表:Visual Studio創建一個查詢連接2個或3臺

customer (cid,cname,bid) 
booking (bid,bdate,btime,billamt) 
bill  (billdate,billamt,billid,cid,bid) 

我想在Visual Basic窗體的文本框分別查看cname,bdate,btime,billdate and billamt。 請幫我創建查詢。以及如何使用查詢將值複製到表單中的相應文本框。

+1

Hi @Kiaara,歡迎來到Stackoverflow。你花了幾分鐘閱讀FAQ?現在就做,你也會得到一個徽章。然後回來,確定你問的是正確的。檢查這個[metaSO問題](http://meta.stackexchange.com/questions/18584/how-to-ask-a-smart-question)和[Jon Skeet:Coding Blog](http://msmvps.com/ blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx)如何撰寫和提出一個好問題。 – Yaroslav 2013-02-26 11:22:35

+1

謝謝yaroslav – kiaara 2013-02-26 11:24:12

+1

請同時瞭解VBA與VB.NET不同...請閱讀每個標籤或語言以瞭解您需要哪種語言的編程幫助..正確標記您的問題以獲得關注很重要誰可以幫助你。 – bonCodigo 2013-02-26 11:25:27

回答

0

以下是使用JOINs連接您的表的SQL查詢的開始。您必須嘗試使用​​填充通過SQL進行表單控件以更好地理解您正在執行的操作。如果你再次被卡住,你可以在這裏發表問題。

SELECT C.cname,BO.bdate,BO.btime, BL.billdate, BL.billamt 
FROM Customer 
INNER JOIN Bill 
ON C.cid = BL.cid 
INNER JOIN Booking 
BL.bid = BO.bid 
WHERE = ? -- specify proper conditions as you desire 

因此,如果您使用數據綁定,就可以使用DataTableDataGridView其中TextBox一併約束。 這是一個示例代碼片段。

`DataGridView1.DataSource = DataTable1 
`TextBox2.DataBindings.Add("Text", DataTable1, "Column2") 

如果使用BindingSource,這裏是你如何能過濾掉。我喜歡做從SQL表客戶的fullfetch到DataTable然後(過濾器)使用放慢參數內查詢(例如你的情況cid

//assuming TextBox1 has cid (customer ID) 
customersBindingSource.Filter = "cid ='" + TextBox1.Text + "'"; 

參考文獻:

  • 如何填充表單控件:文本框,列表框等使用VB.NET SQL
  • 請閱讀有關數據綁定
  • 除了BindingSource
+0

我瞭解了datagridview,但所有客戶的所有細節都會顯示出來。而我想查看的是基於客戶ID的僅有1位客戶的加入詳細信息。 – kiaara 2013-02-26 11:31:20

+0

通過'cid'將'cid'作爲參數發送到'WHERE'子句或過濾'datagridview' – bonCodigo 2013-02-26 11:35:59