asm*_*dev 3 .net c# datatable sqldatareader
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(sqlCommand, connection))
{
command.CommandType = CommandType.Text;
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
DataTable datatable = new DataTable();
datatable.Load(reader);
return datatable;
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行此代码将返回一个空的DataTable。但是,循环遍历reader.Read()并打印到调试控制台会显示读取器具有数据,并且可以打印预期的数据。另外,在调试过程中扩展阅读器对象时,hasRows为true,并且字段计数对返回的列数正确。
在这里有类似的帖子
麻烦将SQL Data Reader数据加载到DataTable中,
但是答案实际上是,只是不使用它,而是使用a SqlDataAdapter。我更喜欢使用它,并且DataTable具有使用IDataReader的load方法DataTable.Load(IDataReader)。我只是不知道当我将阅读器打印到调试窗口时阅读器为什么能工作,而当我将其加载到调试窗口时却不知道DataTable。我只是在俯视什么吗?