我的代码:
string sqlQuery1 = "select * from employees where depid=6";
SqlDataReader Dr1 = dbconn.RunQueryReturnDataReader(sqlQuery1);
if(Dr1.read()) { //or if (Dr1["empname"] != DBNull.Value)
while (Dr1.Read())
{
Label1.Text = Dr1["empname"].ToString();
Label2.Text = Dr1["empdes"].ToString();
...
}
Dr1.Close();
}
else {
Label1.text = "defaultValue";
Label2.text = "defaultValue";
...
}
我只想检查 SqlDataReader 是否没有记录可显示。如果没有记录,标签应该显示我预先分配的默认值,或者如果标签上有记录显示数据阅读器值。 (假设 SqlDataReader 有 1 个重新编码或只有 norecord)
如何检查第一个 datareader 是否有 hasRow?
我已经尝试了上面代码中的两种方法。
if(Dr1.read())
- 这种方式工作正常。但是在执行If
语句后,它没有显示在标签上的值,因为read() 会增加指针。结果 label1 ,Label2.. 没有显示。if (Dr1["empname"] != DBNull.Value)
这种方式在Sqldatareader没有数据时会产生异常。
错误:System.InvalidOperationException:不存在数据时尝试读取无效
请帮帮我。发送
最佳答案
尝试...
if(Dr1.HasRows)
{
//....
}
关于c# - 在 Asp.net 中检查数据读取器是否有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10859919/