IDbConnectionのインスタンスがあります。これは、任意の接続、Sql、OleDbなどです。汎用ラッパーを作成して、ラッパーに接続を送信し、簡単に操作できる優れたメソッドのセットを取得できるようにします。Queryメソッドがあり、DataTableを返すようにしたいので、次のことができます。
IDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = myCommand;
DataSet ds = new DataSet();
adapter.Fill(ds);
問題は、OleDbAdapterを使用する必要があり、SQLでは機能しないことです。「ドライバー固有の」コードを記述したくありません。インスタンス化されたIDbConnectionオブジェクトからIDataAdapterインスタンスを取得する方法はありますか?コマンドを作成できることはわかっています
IDbCommand command = _connection.CreateCommand();
IDataAdapterで同じことを行う簡単な方法があるはずだと考えるのは論理的です。
編集:
using (var reader = command.ExecuteReader())
{
var dataTable = new DataTable();
dataTable.Load(reader);
}
正確には私が求めたものではありませんが、素晴らしい解決策です。