ASP.NETバインドDataSetの複数のテーブル
3066 ワード
この問題は、普段はあまり見られませんが、一般的にデータがバインドされる前に、データは1つのテーブルに配置されていますが、実際には、テーブル間に関係がある場合は、複数のテーブルをバインドすることもできます.次に、DataSetの2つのテーブルをバインドする例を示します.
br>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<br>protected void Page_Load(object sender, EventArgs e)
<br>{
<br>System.Data.DataSet ds = new System.Data.DataSet();
<br>System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");
<br>System.Data.DataRow dr;
<br>dataTable1.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
<br>dataTable1.Columns.Add(new System.Data.DataColumn("UserName", typeof(System.String)));
<br>dataTable1.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["UserId"] };
<br>for (int i = 0; i < 8; i++)
<br>{
<br>dr = dataTable1.NewRow();
<br>dr[0] = i;
<br>dr[1] = "【 E 】" + i.ToString();
<br>dataTable1.Rows.Add(dr);
<br>}
<br>System.Data.DataTable dataTable2 = new System.Data.DataTable("BlogArticle");
<br>dataTable2.Columns.Add(new System.Data.DataColumn("ArticleId", typeof(System.Int32)));
<br>dataTable2.Columns.Add(new System.Data.DataColumn("Title", typeof(System.String)));
<br>dataTable2.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
<br>dataTable2.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["ArticleId"] };
<br>Random rd = new Random();
<br>for (int i = 0; i < 20; i++)
<br>{
<br>dr = dataTable2.NewRow();
<br>dr[0] = i;
<br>dr[1] = " " + i.ToString();
<br>dr[2] = rd.Next(0, 7);
<br>dataTable2.Rows.Add(dr);
<br>}
<br>ds.Tables.Add(dataTable1);
<br>ds.Tables.Add(dataTable2);
<br>System.Data.DataColumn parentColumn = ds.Tables["BlogUser"].Columns["UserId"];
<br>System.Data.DataColumn childColumn = ds.Tables["BlogArticle"].Columns["UserId"];
<br>System.Data.DataRelation user_article = new System.Data.DataRelation("UserId", parentColumn, childColumn);
<br>ds.Relations.Add(user_article);
<br>this.Repeater1.DataSource = ds.Tables["BlogArticle"].DefaultView;
<br>this.Repeater1.DataBind();
<br>}
<br>
ASP.NET DataSet : E