SqlDataReader的问题
在写登陆的代码时候,status = "0";
if (dr.Read())
和写成wlile(dr.Read())
有区别吗?
string
SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=stu");
con.Open();
string sql = "select * from biao where Name=@name and Pwd=@password";
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@name",SqlDbType.VarChar,50),
new SqlParameter("@password",SqlDbType.VarChar,50)
};
para[0].Value = TextBox1.ToString().Trim();
para[1].Value = TextBox2.ToString().Trim();
SqlCommand cmd = new SqlCommand(sql,con);
SqlDataReader dr = SqlHelper.ExecuteReader(sql, CommandType.Text, para);
if (dr.Read())
{
status = "1";
}
else
{
status = "0";
}
dr.Close();
con.Close();
return status;
------解决方案--------------------if (dr.Read())
和写成wlile(dr.Read())
有区别吗?
如果可以read ,就执行一次 .
而while 则循环读 . 楼上已经解答的很详细了
------解决方案--------------------可以使用HasRows去判断记录是否存在
http://www.cnblogs.com/insus/articles/2033412.html
------解决方案--------------------看看微软对这个Read()方法是怎样写的: