2008-03-20 DataSet Join 3712 0 ASP.NET DataSet Join Dim cn As SqlConnection = New SqlConnection() cn.ConnectionString = ConfigurationManager.ConnectionStrings("NorthwindConnectionString").ConnectionString Dim cmd As New SqlCommand("select customerid,companyname from customers", cn) Dim da As New SqlDataAdapter Dim ds As New DataSet da.SelectCommand = cmd da.Fill(ds, "customers") cmd.CommandText = "select orderid,customerid as ordercustomerid,orderdate from orders" da.Fill(ds, "orders") ds.Relations.Add("REL", ds.Tables("customers").Columns("customerid"), ds.Tables("orders").Columns("ordercustomerid")) Dim newtab As New DataTable("newtable") For i As Integer = 0 To ds.Tables("customers").Columns.Count - 1 newtab.Columns.Add(ds.Tables("customers").Columns(i).ColumnName, ds.Tables("customers").Columns(i).DataType) Next For i As Integer = 0 To ds.Tables("orders").Columns.Count - 1 newtab.Columns.Add(ds.Tables("orders").Columns(i).ColumnName, ds.Tables("orders").Columns(i).DataType) Next ds.Tables.Add(newtab) Dim k As Integer For Each dr1 As DataRow In ds.Tables("orders").Rows Dim dr As DataRow = ds.Tables("newtable").NewRow k = 0 Dim temp As DataRow = dr1.GetParentRow("REL") '--------- For i As Integer = 0 To ds.Tables("customers").Columns.Count - 1 dr(i) = temp(i) Next '----------- k = ds.Tables("customers").Columns.Count '------------------- For i As Integer = 0 To ds.Tables("orders").Columns.Count - 1 dr(k) = dr1(i) k += 1 Next '----------------- ds.Tables("newtable").Rows.Add(dr) Next Me.GridView1.DataSource = ds Me.GridView1.DataMember = ds.Tables("newtable").TableName Me.GridView1.DataBind() Response.Write(Me.GridView1.Rows.Count) ASP.NET 回首頁