zoukankan      html  css  js  c++  java
  • 使用MVC实现登录功能

    首先,从底层开始即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"); } } }

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

  • 相关阅读:
    myeclipse自动生成相应对象接收返回值的快捷键
    JavaEE学习记录(一)--软件系统体系结构
    通过Java编码获取String分行字符串的内容
    长款或短款的处理(二)
    现金清查中的长款短款的简单解释(一)
    mybatis 的mapper配置文件sql语句中, 有时用到 大于, 小于等等
    <c:forEach items="${list}" var="tt" varStatus="status"> 的相关大小长度
    svn 提交 working copy is not up-to-date
    svn: Working copy 'D:workspaceweb....images' is too old (format 10, created by Subversion 1.6
    mybatis generator eclipse插件的安装
  • 原文地址:https://www.cnblogs.com/wfaceboss/p/6393963.html
Copyright © 2011-2022 走看看