因为某些原因,我调试的时候碰到了Whiledr.Read())代码,如果没有返回结果,就返回Whiledr.Read())。读())。我试过将这段代码放在几个不同的地方,但似乎都没有触发消息框if(dr.GetValue(0)==DBNull.Value||!dr.HasRows){MessageBox.Show("预约号不存在","错误",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);}else{(readrecords)}我的代码...cmd.CommandText="usp_StoredProcedureName";cmd.CommandType=CommandType.StoredProcedure;cmd.Parameters.AddWithValue("@regnum",regnumber);using(SqlDataReaderdr=cmd.ExecuteReader()){//遍历所有行,检索你需要的列。while(dr.Read()){lblConf.Text=dr.GetValue(0).ToString();lbl名称。Text=dr.GetValue(1).ToString()+","+dr.GetValue(2);lblCompany.Text=dr.GetValue(3).ToString();lblStatus.Text=dr.GetValue(4)。字符串();}}}}}catch(Exceptionex){MessageBox.Show("无法打开连接!");}如果(HasRows博士){//....}else{MessageBox.Show("预约号不存在","错误",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);}SqlDataReader.HasRows属性将此添加到您的代码中以进行检查:sqlCommandcmd=newsqlCommand();SqlDataReaderdr=cmd.ExecuteReader();if(dr.HasRows){while(dr.Read()){//code}}HasRows属性可能对您有所帮助正确的值类型:System.Boolean如果SqlDataReader包含一行或多行,则为true;否则,假的。否则为假。出于某种原因,当我调试时遇到whiledr.Read()代码,如果它没有返回结果,它whiledr.Read()我想你在这里看到的是SQLDataReader.Read()如果如果没有下一个,或者在这种情况下是要读取的第一条记录,则返回false。当其他人响应时,使用HasRows属性确定结果集中是否有任何行。根据您需要完成的任务,您可能希望利用Read()在第一次使用空结果集调用时返回false的事实。以上是C#学习教程:如何检查SQLDataReader是否没有共享行。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
