Dataset運作原理是把資料利用DataAdapter去執行撈資料的動作,再將其放入DataSet中。
那麼如果我撈了兩張資料表的資料該如何做出其中之關聯? (類似留言板那樣!)
實作重點如下:
重點1: 兩張資料表彼此關聯。
myDataSet.Relations.Add("Relation_TT",
myDataSet.Tables["test"].Columns["id"], myDataSet.Tables["test_talk"].Columns["test_id"]);
把關聯後名子取為:Relation_TT
因為資料表這兩個欄位相對所以關聯:Tables["test"].Columns["id"] 和 Tables["test_talk"].Columns["test_id"]
重點2:繞行(我不知道這是否為大陸用語,就是用迴圈把一個東西跑完的意思)
//第一個迴圈取出留言
foreach (DataRow myDRow1 in myDataSet.Tables["test"].Rows)
{
myStr = myStr + "<p>test資料表 -- " + myDRow1["id"].ToString() + "</p>";
myStr = myStr + myDRow1["title"].ToString() + "<br />";
myStr = myStr + "讀者留言<br/>";
//繞行取出回應上述留言的子留言
foreach (DataRow myDRow2 in myDRow1.GetChildRows(myDataSet.Relations["Relation_TT"]))
{
myStr = myStr + "test_talk資料表 -- " + myDRow2["id"].ToString() + " ";
myStr = myStr + "<b><font color=red>" + myDRow2["test_id"].ToString() + "</font></b> ";
myStr = myStr + myDRow2["article"].ToString() + "<br />";
}
myStr = myStr + "</small><hr />";
Label1.Text = myStr;
}
以上就結束了。