首页 > 代码库 > 登陆+注册(三层+sql语句)
登陆+注册(三层+sql语句)
啰嗦:今天面试,遇到这个上级测试,很容易的,因为一个错误,居然最后没做出来,心累
回到家,1小时做完,我特么还加了密,我还验证,可是上天不给我一次重来的机会啊
很垃圾的,小白可以看看,大神可以轻喷
首先第一个问题就是:数据库字段的设计
nvarchar 与 varchar的区别
nvarhar:添加字段,自动用空格补齐后面的空余
varvhar:无空格
问题出现的原因:登陆判断时,输入文本框的值和数据库一样却报错,发现原来是有空格
最简单的数据库表设计
然后就是添加sql帮助类库
model代码:model有输入验证记得在model类库引用 using System.ComponentModel.DataAnnotations;
using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namespace Model { public class UserModel { [DisplayName("用户名")] [Required(ErrorMessage = "必填")] public string UserName { get; set; } [DisplayName("密码")] [Required(ErrorMessage = "必填")] [StringLength(20, MinimumLength = 6, ErrorMessage = "密码长度必须在{2} 和{1}个字符")] [DataType(DataType.Password)] public string UserPwd { get;set; } public string ConfirmPassword { get; set; } public string Message { get; set; } } }
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; using YL.MySQL; namespace DAL { public class UserDAL { //注册 public bool regst(string UserName, string UserPwd) { StringBuilder sql =new StringBuilder(); sql.Append("INSERT INTO Users (UserName,UserPwd) VALUES (@UserName,@UserPwd)" ); SqlParameter[] sqlparmeter = { new SqlParameter("@UserName",SqlDbType.NVarChar,50), new SqlParameter("@UserPwd",SqlDbType.NVarChar,50) }; sqlparmeter[0].Value =http://www.mamicode.com/ UserName; sqlparmeter[1].Value =http://www.mamicode.com/ UserPwd; var result = new MySqlAdoProvide().ExecuteNonQuery(MySqlHelper.connectionStringManager, sql.ToString(), sqlparmeter) > 0; return result; } //登陆 public Model.UserModel GetLogin(string UserName) { StringBuilder strSql = new StringBuilder(); strSql.Append("select UserName,UserPwd " ); strSql.Append(" from Users "); strSql.Append(" where UserName=@UserName "); SqlParameter[] parameters = { new SqlParameter("@UserName", SqlDbType.NVarChar,50) }; parameters[0].Value =http://www.mamicode.com/ UserName; var data = http://www.mamicode.com/new MySqlAdoProvide().ExecuteReader(dr => dr.GetEntity<Model.UserModel>(), MySqlHelper.connectionStringManager, strSql.ToString(), parameters).FirstOrDefault(); return data; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BLL { public class UserBLL { //构造函数 private DAL.UserDAL dal; public UserBLL() { dal = new DAL.UserDAL(); } //注册 public bool regst(string UserName, string UserPwd) { return dal.regst(UserName, UserPwd); } public Model.UserModel GetLogin(string UserName) { return dal.GetLogin(UserName); } } }
MvcApplication8-HomeController代码
控制器代码
@model Model.UserModel @{ ViewBag.Title = "Index"; } <h2>登陆界面</h2> <div> @using(Html.BeginForm("Login","Home",FormMethod.Post)) { <div> @Html.TextBoxFor(m => m.UserName, new { @class = "form-control", @placeholder = "用户名" }) @Html.ValidationMessageFor(m => m.UserName) @Html.TextBoxFor(m => m.UserPwd, new { @class = "form-control", @placeholder = "密码" }) @Html.ValidationMessageFor(m => m.UserPwd) <button type="submit">登陆</button> @Html.ValidationMessageFor(m => m.Message) <a href=http://www.mamicode.com/"@Url.Action("regist")">注册一个新账号</a> </div> } </div>
@model Model.UserModel @{ ViewBag.Title = "Index"; } <h2>注册界面</h2> <div> @using(Html.BeginForm("zc","Home",FormMethod.Post)) { <div> @Html.TextBoxFor(m => m.UserName, new { @placeholder = "用户名" }) @Html.ValidationMessageFor(m => m.UserName) @Html.TextBoxFor(m => m.UserPwd, new { @placeholder = "密码" }) @Html.ValidationMessageFor(m => m.UserPwd) @Html.TextBoxFor(m => m.ConfirmPassword, new { @placeholder="确认密码"}) @Html.ValidationMessageFor(m=>m.ConfirmPassword) @Html.ValidationMessageFor(m => m.Message) <button type="submit">注册</button> </div> } </div>
登陆+注册(三层+sql语句)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。