接續上一篇教學,這一篇要教各位抓取關聯另一個table的值的做法,因為資料庫有正規化緣故,所以資料存取時都需要同時存取多個tables,學長教我一個用Partial方法可以存取另一個table的值。
- 新增一個類別
[code lang="vbnet"]
Partial Public Class Products
Public ReadOnly Property CategoryName As String
Get
' 當dbml有設定好關聯就可以直接呼叫,如果沒有就自己下LINQ或SQL指令
Return Me.Categories.CategoryName
End Get
End Property
End Class[/code] - 打開NorthwindDataSet.xsd之後,加入資料行至Product裡面,命名和Partial的Property名稱一樣。
- 接著打開報表Products.rdlc之後,將DataSet右鍵=>重新整理,此時會看到CategoryName了,我們將CategoryName拉到資料表中然後儲存,然後看一下輸出結果。
OK. 我們已經成功將資料抓進來了!
使用Partial的優點是簡單易用,而且別的報表也要抓的時候也可以重覆使用之前所設定好的關聯。
但缺點是當如果有100列資料的時候,將會SELECT 100次,對效能和伺服器負擔可能會比較大些。
還有另一種做法是使用資料庫的VIEW方式,將關聯都設定完成後,把VIEW當成資料集來源。
下一篇將用VIEW來示範多個關聯表示範。