关于获取每一条查询语句的记录数的方法总结

       最近做一个系统,碰到这个问题,就是要修改用户的密码,先要把用户的密码调出来,碰到判断用户输入的当前用户的密码是否正确的问题,就要判断返回的记录数是否大于0,下面说下我找到的一些方法(方法说明都在代码中)

 

 1 //开始前奏部分,连接数据库  
 2     string connstr = WebConfigurationManager.ConnectionStrings["Mispersonalconn"].ConnectionString;  
 3     SqlConnection Sqlconn = new SqlConnection(connstr);  
 4     Sqlconn.Open();  
 5     string sql = "select * from Tb_User_Login where isnull(userName,'')='" + Session["Name"] + "' and isnull(userPass,'')='" + oldPass.Text.Trim() + "'";  
 6     SqlCommand cmd = new SqlCommand(sql, Sqlconn);  
 7     //开始方法说明  
 8     ////方法二  
 9     //SqlCommand cmd = new SqlCommand("select * from Tb_User_Login where isnull(userName,'')='" + Session["Name"] + "' and isnull(userPass,'')='" + oldPass.Text.Trim() + "'", Sqlconn);  
10     //SqlDataReader read = cmd.ExecuteReader();  
11     //int i = 0;  
12     //while (read.Read())  
13     //{  
14     //    i++;  
15     //}  
16     //return i;  
17     /* 
18       上面的方法还可以使用如下代码来进行判断 
19       int row =0; 
20       row = (int)mycmd.ExecuteReade(); 
21       if(row>0) 
22     */  
23   
24     //方法三 写入到table中后返回第一列的记录,聪明!  
25     //DataSet ds = new DataSet();  
26     //ds = Query("select * from tbname");  
27     //int count = ds.Tables[0].Rows.Count;  
28     Object obresult = cmd.ExecuteScalar();  
29     /* 
30      * 方法四--这个不适合此题 
31      * int num = (int)cmd.ExecuteNonQuery(); 
32      * 使用这个是返回受影响的行数,对select无效,仅对更新,修改等语句有效 
33      *  
34      * / 
35       
36     /* 
37      * 方法一 
38      * 因为ExecuteScalar()返回第一列,第一行的数据。第一列第一行不为空,那么 
39      * ExecuteScalar就直接对应的值,但是如果使用的是对象的话,象我上面那样,那 
40      * 么还要经过一道转换,如整数需要Convert.Int32(obresult)才能获得第一行第 
41      * 一列的值。 
42      * 但是有第一行,但是第一列为空,那么返回的是 DBNull 。一行都没有,那么 
43      * ExecuteScalar就返回null 
44      * 如果没有转换,则可以直接用我下面的方法:obresult == null来判断查询结果 
45      * 如果不想这样,还可以使用Convert.Tostring()来转换为字符型的空,然后来判断 
46      */  
47     if (obresult == null)  
48     {  
49         lbMessage.Text = "当前登陆用户的密码与输入的旧密码不匹配,请重新输入!";  
50         return;  
51     }  
52     else  
53     {  
54         sql = "update [Tb_User_Login] set userPass='"  
55         + NewTxtPass.Text.Trim() + "'" + "where userName='"  
56          + Session["Name"] + "'";  
57         SqlCommand sc = new SqlCommand(sql, Sqlconn);  
58         sc.ExecuteNonQuery();  
59         lbMessage.Text = "修改密码成功!请重新登陆!";  
60         Sqlconn.Close();  
61         Response.Redirect("Logout.aspx");  
62     }  
63 }  

 

(PS:以上转载至http://blog.csdn.net/jayxujia123/article/details/6430884)

 

posted @ 2012-07-28 08:36  心随风若  阅读(1190)  评论(0编辑  收藏  举报