C#でMDBよりデータを取得するため、「OdbcDataAdapter.Fill」を使用していますが、ループにより600回ぐらい行うとエラーが発生しています。
以下に情報を記載しますので、ヒントがありましたらご教授お願いします。
C#
1var conString = $"Driver={{Microsoft Access Driver (*.mdb, *.accdb)}};" + 2 $"Dbq=Test.mdb;Uid=admin;Pwd=; ConnectTimeout=0;"; 3using(var con = new OdbcConnection(conString)) 4{ 5 con.Open(); 6 7 for (int i = 0; i < 1000; i++) 8 { 9 var table = new DataTable(); 10 11 var sql = "SELECT * FROM sample_table;"; 12 using (var adapter = new OdbcDataAdapter(sql, con)) 13 { 14 adapter.Fill(table); 15 } 16 17 System.Diagnostics.Debug.WriteLine($"{i}"); 18 } 19}
adapter.Fill(table);
こちらの環境では、600回を超えたあたりで、この部分でエラーが発生しています。
con.Open();
ここの「Open」を以下に変更して、「OdbcDataAdapter」で Open させた場合は、正常に終了しました。
con.Connection();
ただ、この場合だと、パフォーマンスが悪くなるので、できれば Open して動作させたいと考えております。
エラー
メッセージ: テスト メソッド Test が例外をスローしました:
System.Data.Odbc.OdbcException: ERROR [HY001] [Microsoft][ODBC Microsoft Access Driver] これ以上テーブルを開くことはできません。
開発環境
Visual Studio 2017 Community C#
.Net Framework 4.7.1
MDB:Access 2010
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/28 05:28
2018/06/28 05:33
2018/06/29 00:20