/// <summary> /// 用户登录 /// </summary> /// <param name="uid">用户登录名</param> /// <returns>返回model</returns> public TSeat GetUserByLoginId(string uid) { TSeat model = new TSeat(); //根据用户名的uid(登录名)从数据库中获取该用户的信息 string sql = "select * from T_Seats where CC_LoginId=@uid"; using (SqlDataReader reader = SqlHelper.ExecuteReader(sql, CommandType.Text, new SqlParameter("@uid", uid))) { if (reader.HasRows) { if (reader.Read()) { model.AutoId = reader.GetInt32(0); model.ErrorTimes = reader.GetInt32(4); model.LockedTime = reader.IsDBNull(5) ? null : (DateTime?)reader.GetDateTime(5); model.LoginId = reader.GetString(1); model.LoginPwd = reader.GetString(2); model.TestInt = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6); model.UserName = reader.GetString(3); } else { //如果reader.Read()有数据,可是读取不到数据,则向外抛异常 throw new Exception("DataReader调用Read()方法时异常。"); } } else { //如果用户不存在,给model赋值null model = null; } } return(model); }
//这些业务逻辑层类、数据库层类都没有写成静态类,是因为以后要多态。静态类就不能“多态”了 /// <summary> /// 验证用户登录的方法 /// </summary> /// <param name="uid">用户的登录名</param> /// <param name="pwd">登陆密码</param> /// <param name="autoId">输出参数,记录用户主键Id</param> /// <param name="realName">输出参数,记录用户真实姓名</param> /// <returns></returns> public LoginResult UserLoginValidate(string uid, string pwd, out int autoId, out string realName) { TSeatsDal dal = new TSeatsDal(); autoId = -1; realName = null; TSeat model = dal.GetUserByLoginId(uid); if (model == null) { return(LoginResult.UserNotExists); } else if (model.LoginPwd == CommonHelper.Md5Encrypt(pwd)) { autoId = model.AutoId; realName = model.UserName; return(LoginResult.LoginSuccessful); } else { return(LoginResult.ErrorPassword); } }