gpt4 book ai didi

c# - DataTable 未加载 SqlDataReader

转载 作者:行者123 更新时间:2023-11-30 14:26:54 25 4
gpt4 key购买 nike

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;
}
}
}

运行此代码会返回一个空的数据表。但是,循环遍历 reader.Read() 并打印到调试控制台表明读取器有数据并且它打印了预期的数据。此外,当我在调试期间展开阅读器对象时,hasRows 为真,字段计数与返回的列数相符。

这里有类似的帖子 Trouble loading SQL Data Reader data into DataTable但答案基本上是,不要使用它,使用 SqlDataAdapter。我更愿意使用它,DataTable 有一个采用 IDataReader DataTable.Load(IDataReader) 的加载方法。我只是不知道为什么当我将它打印到调试窗口时读取器工作,但当我将它加载到 DataTable 时却不工作。我是不是忽略了什么?

最佳答案

原来我只是忽略了一些东西,这实际上根本不是问题。原始代码实际上工作正常。调试时 DataTable 对象的预览显示 {} 并且在我看来是空的。 enter image description here

然后对象上有一个名为 ExtendedProperties 的属性,它有 Count = 0,这显然不是行数,但我只是掩饰并得到了 Count = 0 一直在我脑海中萦绕。

enter image description here

如果您发现自己处于相同的情况,请在将鼠标悬停在对象上时向下滚动并展开 Rows,您应该会在其中看到您的行数。 enter image description here

我在这件事上被骗了...对我的愚蠢感到抱歉,并感谢大家的帮助。

关于c# - DataTable 未加载 SqlDataReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com