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













ID