使用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"); } } }

 注意:數據庫的創建,若沒有則報錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM