我正在开发一个自定义SSIS组件,供整个公司使用。现在代码(来自here)只接受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#人,所以我正在寻找任何帮助,我可以得到这个。谢谢你的帮助。
答案 0 :(得分:2)
您可以使用is
关键字来确定对象是否是指定类型的实例(或从指定类型派生的类型)。 see 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;
}