2014-03-04 53 views
0

我目前有一個由三個表組成的數據集。這三張表格通過數據關係鏈接起來。SetBinding和Relationship

我想能夠設置綁定到文本框控件和其他人,提供來自所有三個表的信息,同時能夠使用CollectionViewSource進行導航。

目前,我有以下幾點:

var con = Database.GetConnection(); 
RefundsDS = new DataSet(); 
RefundAdapter = new SqlDataAdapter("SELECT * FROM MemberMoment WHERE RefundRequestedOn IS NOT NULL", con); 
RefundAdapter.Fill(RefundsDS, "MemberMoment"); 

RefundAdapter = new SqlDataAdapter("SELECT SpecialMomentID, MomentName, MomentDateTime FROM SpecialMoment", con); 
RefundAdapter.Fill(RefundsDS, "SpecialMoment"); 

RefundAdapter = new SqlDataAdapter("SELECT MemberNo, FirstName, Surname FROM Member", con); 
RefundAdapter.Fill(RefundsDS, "Member"); 

Relation = new DataRelation ("MemberToMM", RefundsDS.Tables["Member"].Columns["MemberNo"], RefundsDS.Tables["MemberMoment"].Columns["MemberNo"]); 
RefundsDS.Relations.Add(Relation); 

Relation = new DataRelation("SpecialMomentToMM", RefundsDS.Tables["SpecialMoment"].Columns["SpecialMomentID"], RefundsDS.Tables["MemberMoment"].Columns["SpecialMomentID"]); 
RefundsDS.Relations.Add(Relation); 

RefundViewSource.Source = RefundsDS; 
this.DataContext = RefundViewSource; 

OrderIDTxt.SetBinding(TextBox.TextProperty, "MemberMoment/MemberMomentNo"); 
MomentNameTxt.SetBinding(TextBox.TextProperty, "SpecialMoment/MomentName"); 

通常通過數據行導航,我使用:CollectionViewSoureObject.MoveCurrentToPrevious()

等等然而,這不起作用,可能是因爲它是一個數據集。

我該如何修改?

更新:沒關係解決問題,改爲使用JOIN select語句並使用單個DataTable,更容易。

+2

不要回答有問題的答案,請在下面單獨張貼。然後接受。謝謝! – abatishchev

回答

0

問題在單個數據表上使用多個連接來解決。