小编asm*_*dev的帖子

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。我只是在俯视什么吗?

.net c# datatable sqldatareader

3
推荐指数
1
解决办法
2493
查看次数

标签 统计

.net ×1

c# ×1

datatable ×1

sqldatareader ×1