如何在OleDbDataAdapter函数中模拟FilledDataInDataTable (查询,康涅狄格)?我能?我不知道如何处理来自查询和连接字符串参数的依赖关系。
Public Class DataTableOfDataFromExportCSV
Private _adp As IOleDbDataAdapter
Public Sub New(iadp As IOleDbDataAdapter)
_adp = iadp
End Sub
Public Function FilledDataInDataTable(query As String, conStr As String) As DataTable
Dim dt As New DataTable
Dim adp = _adp.OleDbDataAdapter(query, conStr)
adp.Fill(dt)
Return dt
End Function
End Class实现
Public Class MyOleDbDataAdapter
Implements IOleDbDataAdapter
Public Function OleDbDataAdapter(query As String, conn As String) As OleDbDataAdapter Implements IOleDbDataAdapter.OleDbDataAdapter
Dim adp As New OleDbDataAdapter(query, conn)
Return adp
End Function
End Class我的界面
Public Interface IOleDbDataAdapter
Function OleDbDataAdapter(query As String, conn As String) As OleDbDataAdapter
End Interface发布于 2020-03-06 16:26:39
我怎么能模仿OleDbDataAdapter
你不能因为它是NotInheritable (sealed - c#)。
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
Implements ICloneable我们这里有一个漏抽象。
只公开执行所需功能所需的内容。
例如
Public Interface IOleDbDataAdapter
Function Fill(query As String, dataTable As DataTable) As Integer
End Interface这样,像OleDbDataAdapter这样的实现细节/关注点不会导致紧密耦合。
Public Class DataTableOfDataFromExportCSV
Private adp As IOleDbDataAdapter
Public Sub New(iadp As IOleDbDataAdapter)
adp = iadp
End Sub
Public Function FilledDataInDataTable(query As String) As DataTable
Dim dt As New DataTable
adp.Fill(query, dt)
Return dt
End Function
End Class注意,在构造组件的对象图时或组件已经构建之后,可以在组合根管理的运行时数据被删除。
https://stackoverflow.com/questions/60567387
复制相似问题