前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用MVC实现登录功能

使用MVC实现登录功能

作者头像
wfaceboss
发布2019-04-08 11:37:33
9640
发布2019-04-08 11:37:33
举报
文章被收录于专栏:wfacebosswfaceboss

首先,从底层开始即Models:

(1)通用数据访问类(封装数据访问类方法):SqlHelper类   

使用命名空间:using System.Data;  

                  using System.Data.SqlClient;

                  using System.Configuration;//使用配置文件Web.config所需的命名空间

代码语言:javascript
复制
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;

代码语言:javascript
复制
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)实体类

代码语言:javascript
复制
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提交

代码语言:javascript
复制
@{
    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(控制器)

代码语言:javascript
复制
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");
        }
    }
}

 注意:数据库的创建,若没有则报错

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-02-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档