可以使用DataTable的Load方法,很方便的把SqliteDataReader转成DataTable。
代码如下:
//以下h_htDbConnection是一个SQLiteConnection ,query是一个sql查询语句
DataTable m_result = new DataTable();
using (SQLiteCommand cmd = new SQLiteCommand(query, h_htDbConnection))
{
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
m_result.Load(rdr);//这样就SQLiteDataReader 装进 DataTable中
}
}
需要引用命名空间:
using System.Data.SQLite;
以上代码在.NET Framework 4.6 中测试通过。
DataTable类表示内存中数据的一个表,所在命名空间:
System.Data
DataTable的Load方法有以下三种形式:
Load(IDataReader)
通过所提供的 IDataReader,用某个数据源的值填充 DataTable。 如果 DataTable 已经包含行,则从数据源传入的数据与现有行合并。
Load(IDataReader, LoadOption)
通过所提供的 IDataReader,用某个数据源的值填充 DataTable。 如果 DataTable 已包含行,则从数据源传入的数据根据 loadOption 参数的值与现有行合并。
Load(IDataReader, LoadOption, FillErrorEventHandler)
通过所提供的使用错误处理委托的 IDataReader,用某个数据源中的值填充 DataTable。
另外请看SQLiteDataReader声明的代码:
public class SQLiteDataReader : Devart.Common.DbDataReaderBase, IEnumerable, IDataReader, IDataRecord, IDisposable
可以看到其实现了接口IDataReader