1

我正在开发一个自定义 SSIS 组件以供整个公司使用。现在代码(来自这里)只接受 ADO.NET 连接类型。

我也想支持 OLEDB 类型,并想相应地更改我的代码。检查有效 ADO.NET 连接的代码是:

SqlConnection connection = connections[_connectionName].AcquireConnection(null) as SqlConnection;

     if (connection == null)
          {
          componentEvents.FireError(0, METHOD_NAME, "The connection is not a valid ADO.NET connection", "", -1);
          return DTSExecResult.Failure;
          }

这只会检查有效的 ADO.NET 连接。我将如何更改它以检查 OLEDB 连接。例如,如果连接类型是 OLEDB,它应该被接受,如果它们都不是,它应该失败。

我不是一个 C# 的人,因此我正在寻找我能得到的任何帮助。谢谢你的帮助。

4

1 回答 1

2

您可以使用is关键字来确定对象是否是指定类型的实例(或派生自指定类型的类型)。见 MSDN

var connection = connections[_connectionName].AcquireConnection(null);

if (!(connection is SqlConnection || connection is OleDbConnection))
{
     componentEvents.FireError(0, METHOD_NAME, "The connection is not a valid ADO.NET connection", "", -1);
          return DTSExecResult.Failure;
}

如果您想确定连接是否是任何DbConnection类型(两者都SqlConnection来自OleDbConnection),您可以执行以下操作:

DbConnection connection = connections[_connectionName].AcquireConnection(null) as DbConnection;

if (connection == null)
{
    componentEvents.FireError(0, METHOD_NAME, "The connection is not a valid ADO.NET connection", "", -1);
    return DTSExecResult.Failure;
}
于 2012-06-26T21:58:36.897 回答