MS-Access 2007データベース(OleDbConnection経由)からデータを取得し、SqlBulkCopyを使用してそのデータをSQL Serverデータベースに転送するSqlBulkCopy操作があります。これはこれまでは動作していましたが、1つのMS-Accessデータベースでは引き続き動作しますが、他のMS-Accessデータベースでは動作しません。
エラーメッセージが表示されます。
タイムアウトが切れました。操作が完了する前にタイムアウト時間が経過したか、サーバーが応答していません。
oledbCommand.CommandTimeout = 0のsqlBulkCopy.BulkCopyTimeout = 0と両側(MS-AccessとSQL Serverのタイムアウトは0に設定されています)のタイムアウトであるとは考えにくいです。
上記のエラーメッセージが隠れている可能性がある他の問題/例外はありますか? sqlBulkCopy.WriteToServer例外の基本原因を特定する方法はありますか(内部例外などはありません)
だから問題は転送された日付があって、その日付のうちのいくつかはSQLでは無効だが、Accessでは有効であるということでした。何らかの理由で、これは「無効な日付/時刻」ではなくタイムアウトとして表示されていましたが、転送されるデータを完全な転送(500,000)ではなく、少数の行(200)に減らしても無効な日付/時刻として報告されます。 ..好奇心が強い。