C#学习教程:如果我调用SqlReader.Read,我应该调用SqlDataReader.HasRows.HasRows)是有益的。我的意思是,从技术上讲,如果它没有行,它就不会读取,所以如果你先检查它会有关系吗?使用(SqlDataReaderdr=cmd.ExecuteReader()){if(dr.HasRows){while(dr.Read()){....dostuffhere}}}或者如果你只是确保它具有提供的值,这基本上会做同样的事情...使用(SqlDataReaderdr=cmd.ExecuteReader()){while(dr.Read()){....dostuffhere}}no(dr.HasRows)如果DataReader包含任何行,你不必检查(dr.HasRows)。如果没有更多行可读,Read()将返回False,但Reader.HasRows比Read()更能说明它的作用,因此使用Reader.HasRows是一个好习惯,因为你可能会不小心做一些事情,除了Read()可能会抛出异常。小心。HasRows()为我的CTE查询返回false,即使有行(实际上是437行)。不需要检查DataReader是否有行(dr.HasRows)。如果有更多数据要读取,Read()方法将返回true,如果没有更多数据,则返回false,从而打破while循环。我认为这主要适用于可能有也可能没有数据(一个或多个结果集)的存储过程,如果除了while循环之外你还做其他事情(即初始化页眉/页脚等),首先检查它“更容易”.当数据可用时)。试试stringmyconnection="datasource=localhost;port=3306;username=root;password=root;";MySqlConnectionmyconn=newMySqlConnection(myconnection);//MySqlDataAdaptermydata=newMySqlDataAdapter();MySqlDataReader我的阅读器;MySqlCommandSelectCommand=CommandMySql("select*fromstudent_info.student_infowhereusername='"+textBox1.Text+"'andpassword='"+textBox2.Text+"';",myconn);myconn.Open();myreader=SelectCommand.ExecuteReader();整数计数=0;if(myreader.HasRows)//returingfalse但我有4行{while(myreader.Read())//returingfalse{MessageBox.Show("inbutton3");计数=计数+1;你的意见需要以上是C#学习教程:如果我调用SqlReader.Read,我应该调用SqlDataReader.HasRows共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,还望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
