0

MS-Access 2007 データベースから (OleDbConnection 経由で) データを取得し、SqlBulkCopy を使用してそのデータを SQL Server データベースに転送する SqlBulkCopy 操作があります。これは、以前は機能しており、1 つの MS-Access データベースでは引き続き機能しますが、他のデータベースでは機能しません。

エラーメッセージが表示されます:

タイムアウトになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

oledbCommand.CommandTimeout = 0、sqlBulkCopy.BulkCopyTimeout = 0、およびいずれかの側でタイムアウトであるとは信じがたいです (MS-Access と SQL Server のタイムアウトは現在 0 に設定されています)。

上記のエラー メッセージに隠れている他の問題や例外はありますか? sqlBulkCopy.WriteToServer 例外の基本的な原因を特定する方法はありますか (内部例外などはないようです...)

4

1 に答える 1

1

そのため、問題は、転送される日付があり、それらの日付の一部はSQLでは無効でしたが、Accessでは有効であるということでした。何らかの理由で、これは「無効な日付/時刻」ではなくタイムアウトとして表示されていました。ただし、転送されるデータを完全な転送(500,000)ではなく少数の行(200)に減らすと、無効な日付/時刻として報告されます。 .. 奇妙な。

于 2012-06-26T03:11:04.277 に答える