我目前有一个由三个表组成的数据集。然后通过数据关系链接这三个表。
我希望能够设置绑定到文本框控件和其他控件,提供来自所有三个表的信息,同时能够使用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");
通常要浏览DataRows,我使用:CollectionViewSoureObject.MoveCurrentToPrevious()
等但是这不起作用,可能是因为它是一个DataSet。
我该如何修改?
更新:没关系问题已解决,使用JOIN select语句代替使用单个DataTable,更容易。
答案 0 :(得分:0)
在单个数据表上使用多个连接解决了问题。