下面是一個更具體的答案。這demontrastes如何使用類型化數據集的基類來交換您自己的連接或命令類。
將此設置爲每個您鍵入的TableAdapter的「BaseClass」,替換「System.ComponentModel.Component」。 通過使用「MustInherit/MustOverride」(C#中的「摘要」),您可以訪問您無法達到的屬性。
Public MustInherit Class SuperTableAdapter
Inherits System.ComponentModel.Component
Public MustOverride ReadOnly Property MyCommandCollection As Data.SqlClient.SqlCommand()
Public Sub New()
MyBase.New()
'With the command collection exposed, you can replace it with your own.'
For i = 0 To MyCommandCollection.Length - 1
'Now you can put in your special command class here'
Dim myspecialCommand As New Data.SqlClient.SqlCommand()
MyCommandCollection(i) = myspecialCommand
Next
End Sub
End Class
對於您設置爲繼承您的BaseClass的必須覆蓋所需要的「MustOverride」屬性的表適配器。沒有它,它不會編譯。如果添加代碼但不設置TableAdapter基類,它將不會編譯。這是件好事;它確保你做對了。
Namespace DataSet1TableAdapters
Partial Public Class Table1TableAdapter
Public Overrides ReadOnly Property MyCommandCollection As System.Data.SqlClient.SqlCommand()
Get
Return Me.CommandCollection
End Get
End Property
End Class
Partial Public Class Table2TableAdapter
Public Overrides ReadOnly Property MyCommandCollection As System.Data.SqlClient.SqlCommand()
Get
Return Me.CommandCollection
End Get
End Property
End Class
End Namespace
現在你可以在你的SuperTableAdapter中放入各種特殊的代碼。如果您需要訪問未公開的內容,只需使用「MustOverride」來確保它可用。
這是如何回答自定義sql客戶端連接重試的問題? (超時)你的答案必須處理與事務不重試,異步執行? – Maslow 2010-05-09 02:35:44