2012-06-26 5 views
1

Je développe un composant SSIS personnalisé à utiliser dans toute l'entreprise. À l'heure actuelle, le code (qui est de here) accepte uniquement le type de connexion ADO.NET.Vérification de la présence de la connexion ADO.NET/OLEDB

Je voudrais aussi prendre en charge le type OLEDB et je voudrais changer mon code en conséquence. Le morceau de code qui vérifie la connectivité ADO.NET est valide:

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; 
      } 

Ce serait tout simplement vérifier une connexion ADO.NET valide. Comment pourrais-je changer cela pour vérifier la connexion OLEDB AUSSI. Ainsi, par exemple, si le type de connexion est OLEDB, il devrait être accepté, si ce n'est pas le cas, il devrait échouer. Je ne suis pas vraiment une personne C# et donc je suis à la recherche d'aide que je peux obtenir à ce sujet. Merci pour toute aide.

+0

J'ai trouvé une solution de travail [1] pour ça. [1]: http://stackoverflow.com/questions/11265706/missing-library-to-reference-oledb-connection-types – rvphx

Répondre

2

Vous pouvez utiliser le mot clé is pour déterminer si un objet est une instance d'un type spécifié (ou un type dérivé du type spécifié). 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; 
} 

Si vous souhaitez déterminer si la connexion est tout, vous pouvez faire ce qui suit le type DbConnection (dont deux Derive SqlConnection et 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; 
} 
+0

J'ai également une instruction d'insertion dans le code. Pouvez-vous m'aider aussi? – rvphx

+0

Merci pour ce BTW :) – rvphx

+0

Je ne suis pas exactement sûr de ce que vous voulez dire. Je pense que vous devriez publier cela comme une nouvelle question. De cette façon, vous serez en mesure de fournir une meilleure explication et de permettre aux autres d'en bénéficier aussi. Vous êtes les bienvenus. :) –

Questions connexes