使用SqlDataReader确定行数据的大小

4

我正在尝试确定从SQL Server返回给.NET应用程序的任意SQL命令的数据量。在编译时未知列结构。我不关心数据本身,只关心长度。

long size = 0;
using (SqlDataReader reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        //size += size of current reader row ?
    }
}

有没有任何方法可以做到这一点?
1个回答

0

如果你说的行大小是指列数,你可以使用reader.FieldCount或reader.VisibleFieldCount

long size = 0;
using (SqlDataReader reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        size += reader.FieldCount;
    }
}

谢谢,但我想知道收到的数据量。 - geofftnz
抱歉,我觉得我没有很好地理解你的意思。也许你想通过使用reader.GetSqlBytes从每个列中检索二进制数据以计算其长度(使用reader.FieldCount已知列的数量)... - Blas Soriano
这基本上就是我想做的事情,但是如果SQL类型一开始不是blob类型列,GetSqlBytes()似乎只能起到很有限的作用。 - geofftnz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接