好的,所以我制作了这个演示来介绍我的项目存在的问题。
首先,我的本地数据库中有一个空表,如下所示:
*请注意列A的日期数据类型。
接下来,我使用Microsoft.SqlServer.Dts.Runtime
通过Visual Basic通过编程方式使用连接管理器生成了一个程序包:
Imports Microsoft.SqlServer.Dts.Runtime
Module Module2
Sub Main()
Dim app As Application = New Application()
Dim package As Package = New Package()
Dim connectionManager As ConnectionManager = package.Connections.Add("OLEDB")
connectionManager.Properties("Description").SetValue(connectionManager, "DESCRIPTION")
connectionManager.Properties("Name").SetValue(connectionManager, "Test")
Dim Provider As String = "SQLOLEDB"
Dim ServerName As String = "DESKTOP-UPN5DLT"
Dim DatabaseName As String = "Test"
connectionManager.ConnectionString = "Data Source=" &
ServerName & ";Initial Catalog=" &
DatabaseName & ";Provider=" & Provider & ";Integrated Security=SSPI;"
app.SaveToXml("C:\Users\zafir\Desktop\Package_3.dtsx", package, Nothing)
End Sub
End Module
接下来,我在数据工具中打开.dtsx包,并使用单个OLE DB目标组件添加数据流。
当我将组件绑定到生成的连接管理器时,无法识别列A的数据类型,并将其设置为大小为DT_WSTR的默认值。
可以正确识别所有其他数据类型(在这种情况下:datetime和int)。
现在,如果我删除ole db连接管理器,并手动添加它,它将像超级按钮一样工作。
我有以下规格:
我该如何解决?这显然是库的问题。