Csharp/C#教程:如何检查SQLDataReader是否没有行分享


如何检查SQLDataReader是否没有行

我试图弄清楚如何检查我的SqlDataReader是否为空或没有行(意味着保留不存在),然后显示一个消息框。 出于某种原因,当我调试一次它遇到While dr.Read())代码时,如果它没有返回结果,它While dr.Read())

我已经尝试将此代码放在几个不同的位置,但如果没有返回任何记录,似乎都没有触发消息框

 if (dr.GetValue(0) == DBNull.Value || !dr.HasRows) { MessageBox.Show("Reservation Number Does Not Exist","Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { (read records) } 

我的代码……

 try { using (SqlConnection con = new SqlConnection(connectionString)) { using (SqlCommand cmd = con.CreateCommand()) { con.Open(); cmd.CommandText = "usp_StoredProcedureName"; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@regnum", regnumber); using (SqlDataReader dr = cmd.ExecuteReader()) { //Loop through all the rows, retrieving the columns you need. while (dr.Read()) { lblConf.Text = dr.GetValue(0).ToString(); lblName.Text = dr.GetValue(1).ToString() + "," + dr.GetValue(2); lblCompany.Text = dr.GetValue(3).ToString(); lblStatus.Text = dr.GetValue(4).ToString(); } } } } } catch (Exception ex) { MessageBox.Show("Can not open connection! "); } 

 if(dr.HasRows) { // .... } else { MessageBox.Show("Reservation Number Does Not Exist","Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } 

SqlDataReader.HasRows属性

将其添加到您的代码中以检查:

 sqlCommand cmd = new sqlCommand(); SqlDataReader dr = cmd.ExecuteReader(); if(dr.HasRows) { while(dr.Read()) { //code } } 

HasRows属性可能对您有所帮助。

适当的价值

类型:System.Boolean如果SqlDataReader包含一行或多行,则为true;否则为false。 否则是假的。

出于某种原因,当我调试一次它遇到while dr.Read()代码时,如果它没有返回结果,它while dr.Read()

我认为你在这里看到的是SQLDataReader.Read()如果没有下一个,则返回false ,或者在这种情况下是第一个要读取的记录。

在其他人已响应时,使用HasRows属性确定结果集中是否有任何行。 根据您需要完成的任务,您可能希望利用Read()在第一次调用空结果集时返回false的事实。

上述就是C#学习教程:如何检查SQLDataReader是否没有行分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1029329.html

(0)
上一篇 2022年1月12日
下一篇 2022年1月12日

精彩推荐