質問: new OdbcDataAdapter(sql, con)) { adapter.Fill(table); } System.Diagnostics.Debug.WriteLine($"{i}"); } } ``` > > 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
回答: メッセージの通りです。 一度に全部開かないと駄目なんですか? select文でテーブルを結合するとか、目的に応じて開くテーブルを限定するしか無いかと思います。 そのような作りであれば、メモリーの無駄遣いだと感じます。 ※そもそものサンプルソースは同じSQLなので、意味があるものとは思いませんが。