.net 正在转储SQL server表数据以使用OLEDB访问mdb

.net 正在转储SQL server表数据以使用OLEDB访问mdb,.net,vb.net,ssis,odbc,sql-server-2012,.net,Vb.net,Ssis,Odbc,Sql Server 2012,以下代码块位于SSIS包中的脚本任务(执行转储)中。递归调用脚本以获取数据库中的表列表: Function ImportSQLServerToAccess(ByVal sMDBFile As String, ByVal sSource As String, ByVal sDestination As String, ByVal sServer As String, ByVal sDatabase As String) As Boolean Dim AccessConn As System

以下代码块位于SSIS包中的脚本任务(执行转储)中。递归调用脚本以获取数据库中的表列表:

Function ImportSQLServerToAccess(ByVal sMDBFile As String, ByVal sSource As String, ByVal sDestination As String, ByVal sServer As String, ByVal sDatabase As String) As Boolean
    Dim AccessConn As System.Data.OleDb.OleDbConnection
    If System.Environment.OSVersion.Version.Major >= 6 Then
        AccessConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sMDBFile + "")
    Else
        AccessConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sMDBFile + "")
    End If

    AccessConn.Open()

    Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT * INTO " + sDestination + "  FROM [" + sSource + "] IN '' [ODBC;Driver={SQL Server};Server=" + sServer + ";Database=" + sDatabase + ";Trusted_Connection=yes];", AccessConn)

    AccessCommand.ExecuteNonQuery()
    AccessCommand.Dispose()
    AccessConn.Close()
End Function
第一次调用执行转储脚本任务时,查询执行良好,并将数据转储到mdb中,但此后每隔一次都会失败,例外情况是“ODBC--连接到”{SQL Server}DEV01“失败”。我不知道为什么连接第二次失败,但第一次成功。是否有任何建议的解决方法


是否尝试将OLE DB连接的
RetainSameConnection
属性设置为
true
?我在想,既然最初的连接尝试成功了,那么在剩下的处理过程中保留该连接。嗨,迈克,谢谢你的回复。此函数为列表中的每个mdb文件创建一个新的oledb连接,该文件在上一步中创建,这就是为什么每次目标mdb文件更改后,我都不创建新连接的原因。您的插图表明您可能已设置中断。你能找出它抱怨的线路吗?我已经添加了一个它实际失败的地方的屏幕截图。除了第一次之外,这种情况每隔一次都会发生。我并不完全相信这就是问题所在,但也许可以看看
Close
Dispose
调用。