如何避免/删除invalidcastexception

时间:2013-09-30 12:25:45

标签: vb.net ssis

在SSIS 05(VB.NET)脚本中,发生了一个有趣的异常。开发环境不会显示有关脚本的任何错误。

以下错误消息显示在ETL过程的脚本组件中。

Unable To Cast COM Object Of Type 'System.__ComObject' To Class Type 'System.Data.SqlClient.SqlConnection

正在使用连接管理器。

Dim connMgr As IDTSConnectionManager90

这里应用了CType命令。

  

Public Overrides Sub AcquireConnections(ByVal Transaction As Object)

      connMgr = Me.Connections.Connection
      sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection)

End Sub

有任何经验如何避免这个问题?任何帮助将不胜感激。

btw 2012版(在C#中)无故障地运行。 2005版本被手动降级/重写。

public override void AcquireConnections(object Transaction)
{
    connMgr = this.Connections.Connection;
    sqlConn = (SqlConnection)connMgr.AcquireConnection(null);
}

附录: 这不起作用。

  

sqlConn =新的SqlConnection(connMgr.ConnectionString)

1 个答案:

答案 0 :(得分:0)

即使没有演员表,演员问题也是一个问题(请参阅上面的代码片段与新关键字)。

因此,声明被重写。 重点 - 关于旧问题还没有问题。

oleDbConn = New OleDb.OleDbConnection(connMgr.ConnectionString)