4

OleDb を使用して Excel ファイルからデータを取得し、それを SQL Server 2005 の CLR テーブル値関数で使用される DataRowCollection に返す .NET 3.5 C# ライブラリがあります。

SELECT を使用すると、関数は正常に機能します。しかし、その出力をテーブルへの INSERT INTO のソースとして使用したい場合、次のエラーが発生します。

System.InvalidOperationException: ITransactionLocal インターフェイスは、'Microsoft.Jet.OLEDB.4.0' プロバイダーによってサポートされていません。ローカル トランザクションは、現在のプロバイダーでは利用できません。System.InvalidOperationException: System.Data.OleDb.OleDbConnectionInternal.EnlistTransactionInternal (トランザクション トランザクション、Boolean forcedAutomatic) で System.Data.OleDb.OleDbConnection.Open() で GetExcelFunction.GetFile(String strFileName) で GetExcelFunction.InitMethod(String strFileName) で

それで、どうすればこれを解決できますか?接続によるトランザクションの作成を停止しますか? もしそうなら、どのように?OleDbConnection に関連するメソッドやプロパティがありません。接続文字列にパラメーターはありますか?

4

1 に答える 1

8

";OLE DB Services=-4" を接続文字列に追加します。

于 2009-04-06T17:40:36.507 に答える