gpt4 book ai didi

c# - 如何在 C# 中使用 SqlDataReader 获取行数

转载 作者:IT王子 更新时间:2023-10-29 03:37:10 26 4
gpt4 key购买 nike

我的问题是如何在 C# 中使用 SqlDataReader 获取查询返回的行数。我已经看到了一些关于此的答案,但除了一个声明使用 Read() 方法执行 while 循环并递增计数器之外,没有一个明确定义。

我的问题是我试图填充一个多维数组,其中第一行是列标题名称,之后的每一行都是行数据。

我知道我可以将这些东西转储到 List 控件中而不用担心它,但是为了我个人的启发,我还想在我选择时将数据拉入和拉出数组并将其显示在不同的格式。

所以我认为我不能执行 Read() 然后递增++ 方式,因为这意味着我必须打开 Read() 然后打开Read() 再次获取行数和列数据。

只是我所说的一个小例子:

int counter = 0;    

while (sqlRead.Read())
{
//get rows
counter++
}

然后一个 for 循环遍历列并弹出

something.Read();

int dbFields = sqlRead.FieldCount;

for (int i = 0; i < dbFields; i++)
{
// do stuff to array
}

最佳答案

只有两个选择:

  • 通过读取所有行找出(然后你不妨存储它们)

  • 事先运行专门的 SELECT COUNT(*) 查询。

通过 DataReader 循环两次非常昂贵,您将不得不重新执行查询。

并且(感谢 Pete OHanlon)第二个选项仅在您使用具有快照隔离级别的事务时是并发安全的。

既然你想最终将所有行存储在内存中,唯一明智的选择是读取灵活存储中的所有行(List<>DataTable),然后将数据复制到你想要的任何格式。内存操作总是会更有效率。

关于c# - 如何在 C# 中使用 SqlDataReader 获取行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383315/

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