我想在用户登录时,同时记录ID到Session里面,但我不想在表示层有填写主键ID,请问怎么写方法?
这是我登录时的方法
public bool IsExists(string name, string pw, string rank)
       {
           bool flag = false;
           string sql = "select * from ManageAdmin where AdminName='" + name + "' and AdminPw='" + pw + "' and AdminRank='" + rank + "'";
           DataTable dt = sqlhelper.ExecuteQuery(sql, CommandType.Text);
           if (dt.Rows.Count > 0)
           {
               flag = true;
           }
           return flag;
       }

解决方案 »

  1.   

    你在实体层那边新建一个用户登录的实体类,那些属性的返回值都是session的值,并且在写入的set方法里面给相应的session赋值value,即那些id,username之类的,到时候你的主键ID之间在应用层调用这个实体类的属性就可以得到了
      

  2.   

    首先登录类中继承System.Web.UI.Page。
    然后下面代码public bool IsExists(string name, string pw, string rank)
           {
               bool flag = false;
               string sql = "select * from ManageAdmin where AdminName='" + name + "' and AdminPw='" + pw + "' and AdminRank='" + rank + "'";
               DataTable dt = sqlhelper.ExecuteQuery(sql, CommandType.Text);
               if (dt.Rows.Count > 0)
               {
                   Session["ID"]=dt[0]["id"].ToString();
                   flag = true;
               }
               return flag;
           }这样就完事了
      

  3.   

    记得好像是@@identity,返回个就好了,还有拼接字符串有注入风险。
      

  4.   

    在登录是将ID查询出来然后保存到Session里面。
      

  5.   

    可以用ExecuteScalar
    性能会高
      

  6.   

    Session里面可以这样存储
    "abc#123#cba#321"
    您之要提起时候节选一下字符串就可以了