首先,从底层开始即Models:
(1)通用数据访问类(封装数据访问类方法):SqlHelper类
使用命名空间:using System.Data;
using System.Data.SqlClient;
using System.Configuration;//使用配置文件Web.config所需的命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace mvcDemo.Models
{
/// <summary>
/// (1)通用访问类(封装数据访问类方法)
/// </summary>
public class SqlHelper
{
//定义链接字符串
private static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();//使用配置文件
public static SqlDataReader GetReader(string sql)
{
SqlConnection con = new SqlConnection(connString);
SqlCommand com = new SqlCommand(sql, con);
try
{
con.Open();
return com.ExecuteReader(CommandBehavior.CloseConnection);//dataReader关闭后自动关闭
}
catch (Exception ex)
{
//写出错误日志
throw ex;
}
}
}
}
web.config:配置为
<connectionStrings> <add name="connString" connectionString="Server=.;DataBase=DBFirst;uid=sa;pwd=123456"/>//数据库连接字符串 </connectionStrings>
(2)数据访问类:实体名称+Service,需使用命名空间:
using System.Data; using System.Data.SqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace mvcDemo.Models
{
/// <summary>
///(2) 数据访问类
/// </summary>
public class sysAdminService
{/// <summary>
/// 根据账号和密码登录
/// </summary>
/// <param name="objAdmin"></param>
/// <returns></returns>
public sysAdmin AdminLogin(sysAdmin objAdmin)//返回对象思考??及对参数为实体的思考??
{
string sql = "select LoginName from First where LoginId={0}and LoginPwd='{1}'";
sql = string.Format(sql,objAdmin.LoginId,objAdmin.Loginpwd);//格式化
SqlDataReader objReader = SqlHelper.GetReader(sql);
if (objReader.Read())
{
objAdmin.LoginName = objReader["LoginName"].ToString();
}
else
{
objAdmin = null;
}
objReader.Close();
return objAdmin;
}
}
}
(3)实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace mvcDemo.Models
{
/// <summary>
/// 实体类
/// </summary>
public class sysAdmin
{
public int LoginId { get; set; }
public string LoginName { get; set; }
public string Loginpwd { get; set; }
}
}
其次,Views()【视图层】使用form提交
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>登录</title>
</head>
<body>
<form method="post" action="/sysAdmin/AdminLogin">
用户名:<input type="text" name="LoginId" />
<br /><br />
密码:<input type="password" name="Loginpwd"/>
<br /><br />
<input type="submit" value="登录" /><br />
<span style="color:red">@ViewData["info"]</span>
</form>
</body>
</html>
最后,Controller(控制器)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using mvcDemo.Models;
namespace mvcDemo.Controllers
{
public class sysAdminController : Controller
{
public ActionResult Index()//呈现视图
{
return View();
}
//编写动作方法
public ActionResult AdminLogin()
{
//[1] 获取数据
int loginId = Convert.ToInt32(Request.Params["LoginId"]);
string loginpwd = Request.Params["Loginpwd"];//接受form提交的数据
sysAdmin objAdmin = new sysAdmin()
{
LoginId = loginId,
Loginpwd = loginpwd
};//对象初始化器(对属性赋值)
//[2] 业务处理 掉用数据访问类 使用数据访问类中的方法
objAdmin = new sysAdminService().AdminLogin(objAdmin);
if (objAdmin!=null)
{
ViewData["info"] = "欢迎登录!"+objAdmin.LoginName;
}
else
{
ViewData["info"] = "用户名或密码错误";
}
//[3] 返回数据(视图)
return View("Index");
}
}
}
注意:数据库的创建,若没有则报错
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有