首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何伪装OleDbDataAdapter(查询,connStr)

如何伪装OleDbDataAdapter(查询,connStr)
EN

Stack Overflow用户
提问于 2020-03-06 15:44:11
回答 1查看 71关注 0票数 2

如何在OleDbDataAdapter函数中模拟FilledDataInDataTable (查询,康涅狄格)?我能?我不知道如何处理来自查询和连接字符串参数的依赖关系。

代码语言:javascript
复制
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

实现

代码语言:javascript
复制
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

我的界面

代码语言:javascript
复制
Public Interface IOleDbDataAdapter
   Function OleDbDataAdapter(query As String, conn As String) As OleDbDataAdapter
End Interface
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 16:26:39

我怎么能模仿OleDbDataAdapter

你不能因为它是NotInheritable (sealed - c#)。

代码语言:javascript
复制
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
Implements ICloneable

我们这里有一个漏抽象

只公开执行所需功能所需的内容。

例如

代码语言:javascript
复制
Public Interface IOleDbDataAdapter
   Function Fill(query As String, dataTable As DataTable) As Integer
End Interface

这样,像OleDbDataAdapter这样的实现细节/关注点不会导致紧密耦合。

代码语言:javascript
复制
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

注意,在构造组件的对象图时或组件已经构建之后,可以在组合根管理的运行时数据被删除。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60567387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档