为何放弃INNER JOIN而改用DataRelation Object来建立一个RelationShip于两个Table。

(華版)

一般我们都是用INNER JOIN把来自不同table里的数据连接起来,而所得到的数据是整行(row);如果bind到DataGrid控件上,感观上不是那那么的好!反而如果我们用DataRelation来代替此INNER JOIN然后才bind到DataGrid控件上就会有更好的界面效果(见圖)。

 

 

以下是如何运用DataRelation Object的代码:

        '声明变量
        Dim cn As SqlConnection
        
Dim da1 As SqlDataAdapter
        
Dim da2 As SqlDataAdapter
        
Dim ds As DataSet
        
Dim ParentColumn As DataColumn
        
Dim ChildColumn As DataColumn
        
Dim dr As System.Data.DataRelation

        
Try
            
'实例化SqlConnection Object
            cn = New SqlConnection("Data Source=localhost;initial catalog=northwind;integrated security=true;")
            cn.Open()

            
'实例化地一个别SqlDataAdapter于Customers表里的数据
            da1 = New SqlDataAdapter("SELECT * FROM Customers", cn)
            da2 
= New SqlDataAdapter("SELECT * FROM Orders", cn)
            
'实例化DataSet Object
            ds = New DataSet

            
'把所读取的数据储存到DataSet里
            da1.Fill(ds, "Customers")
            da2.Fill(ds, 
"Orders")

            
'创建DataRelation里的linking column
            ParentColumn = ds.Tables("Customers").Columns("CustomerID")
            ChildColumn 
= ds.Tables("Orders").Columns("CustomerID")

            
'实例化DataRelation Object
            dr = New System.Data.DataRelation("Detail-Orders", ParentColumn, ChildColumn)
            ds.Relations.Add(dr)

            
'将DataSet里的数据绑定到DataGrid控件里
            DataGrid1.DataSource = ds

        
Catch ex As SqlException
            
'
            MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

        
End Try

posted on 2005-04-01 00:50  克仔  阅读(1565)  评论(5编辑  收藏  举报