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 に答える