gpt4 book ai didi

c# - 如果我正在调用 SqlReader.Read,我应该调用 SqlDataReader.HasRows

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

尝试在 while (dr.read()) 函数之前添加一个 if (dr.HasRows) 是否有益。我的意思是,从技术上讲,如果它没有行,它就不会被读取,所以如果您先检查它会有关系吗?

using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
while (dr.Read())
{
....do stuff here
}
}
}

或者如果您只是确保它具有要提供的值,这是否会本质上做完全相同的事情...

using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
....do stuff here
}
}

最佳答案

不。如果 DataReader 包含任何行,则不需要检查 (dr.HasRows)

Read() 将返回 False 如果没有更多行要获取,但 Reader.HasRows 更能说明什么它比 Read() 更有效,所以使用 Reader.HasRows 是一个好的做法,因为您可能会不小心执行 Read() 以外的操作,这可能会导致异常。

关于c# - 如果我正在调用 SqlReader.Read,我应该调用 SqlDataReader.HasRows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14196644/

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