다음은 좀 더 구체적인 답변입니다. 이것은 자신 만의 연결이나 명령 클래스를 교환하기 위해 입력 된 데이터 세트에 대한 기본 클래스를 사용하는 방법을 설명하지 않습니다.
"System.ComponentModel.Component"를 대체하는 입력 된 TableAdapter 각각에 대해 "BaseClass"로 설정합니다. "MustInherit/MustOverride"(C#의 "Abstract")를 사용하면 다르게 도달 할 수없는 속성으로 이동할 수 있습니다. 당신이 필요합니다 "MustOverride"속성을 재정의해야합니다 BaseClass로를 상속하도록 설정 테이블 어댑터 각각에 대해
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
. 그것 없이는 컴파일되지 않습니다. 코드를 추가하지만 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
이 솔루션은 입력 된 데이터 집합의 연결/명령 속성에 액세스하는 방법을 보여줍니다. 클래스를 구현 한 방법에 따라 코드와 같이 클래스를 사용하도록 연결/명령을 바꿔야합니다. –