2008-12-04 8 views
4

J'ai .NET 3.5 C# bibliothèque qui utilise OleDb pour extraire des données à partir d'un fichier Excel et le retourner dans un DataRowCollection qui est utilisé par un CLR fonction de valeur table dans SQL Server 2005.l'interface ITransactionLocal est pas prise en charge

La fonction fonctionne correctement lorsque j'utilise SELECT. Mais si je veux utiliser sa sortie en tant que source pour un INSERT INTO une table, j'obtiens l'erreur suivante:

System.InvalidOperationException: l'interface ITransactionLocal n'est pas prise en charge par le fournisseur 'Microsoft.Jet.OLEDB.4.0' . Les transactions locales ne sont pas disponibles avec le fournisseur actuel. System.InvalidOperationException: à System.Data.OleDb.OleDbConnectionInternal.EnlistTransactionInternal (de transaction de la transaction, Boolean forcedAutomatic) à System.Data.OleDb.OleDbConnection.Open() à GetExcelFunction.GetFile (String strFileName) à GetExcelFunction.InitMethod (String strFileName)

Alors, comment puis-je résoudre ce problème? Est-ce que j'arrête la connexion de la création de la transaction? Si c'est le cas, comment? Je ne vois aucune méthode ou propriété pertinente sur OleDbConnection. Y a-t-il un paramètre dans la chaîne de connexion?

Répondre

8

Ajoutez "; Services OLE DB = -4" à la chaîne de connexion.

Questions connexes