asp.net mvc 三層加EF 登錄註冊 增刪改查

来源:https://www.cnblogs.com/zuozhaoquan/archive/2019/03/23/10582720.html
-Advertisement-
Play Games

首先打開vs軟體新建項目創建web中的mvc項目再右擊解決方案創建類庫項目分別創建DAL層和BLL層再把DAL層和BLL層的類重命名在mvc項目中的Models文件夾創建model類在DAL創建ADO.NET實體數據模型後把DAL層中App.Config文件中的鏈接字元串複製到mvc項目的Web.c ...


首先打開vs軟體
新建項目
創建web中的mvc項目
再右擊解決方案創建類庫項目
分別創建DAL層和BLL層再把DAL層和BLL層的類重命名
在mvc項目中的Models文件夾創建model類
在DAL創建ADO.NET實體數據模型後把DAL層中App.Config文件中的鏈接字元串複製到mvc項目的Web.config文件中
DAL層中的類開始打代碼
登錄

 /// <summary>
        /// 登錄
        /// </summary>
        /// <param name="studentname">登錄名</param>
        /// <param name="studentaddress">是否停用</param>
        /// <param name="phone">密碼</param>
        /// <returns></returns>
        public static int Login(string studentname, string phone)
        {
            using (zzqEntities1 db = new zzqEntities1())
            {
                int stu = db.student.Where(s => s.Studentname == studentname && s.Studentaddress =="啟用" && s.phone == phone).Count();
                return stu;
            }
        
        }

查詢

   /// <summary>
        /// 查詢
        /// </summary>
        /// <returns></returns>
        public static  List<student>  studentSelect() { 
            using (zzqEntities1 db = new zzqEntities1()) {
                List<student> stu = new List<student>();
                stu = db.student.ToList();
                return stu;
            }
         
        }

添加

 /// <summary>
        /// 添加
        /// </summary>
        /// <param name="studentname">姓名</param>
        /// <param name="studentaddress">是否停用</param>
        /// <param name="phone">密碼</param>
        /// <returns></returns>
        public static int Insert(string studentname, string studentaddress, string phone) {
            using (zzqEntities1 db = new zzqEntities1())
            {
                var stu = new student() { Studentname = studentname, Studentaddress = studentaddress, phone = phone };
                db.student.Add(stu);
                return db.SaveChanges(); 
            }
        
        }

刪除

  /// <summary>
        /// 刪除
        /// </summary>
        /// <param name="studentid">編號</param>
        /// <returns></returns>
        public static int Delete(int id)
        {
            using (zzqEntities1 db = new zzqEntities1())
            {
                var stu = new student() { Studentid = id };
                db.student.Attach(stu);
                db.student.Remove(stu);
                return db.SaveChanges();
            }
        }

修改

  /// <summary>
        /// 查詢編號
        /// </summary>
        /// <param name="studentid">編號</param>
        /// <returns></returns>
        public static List<student> updateSelect(int id)
        {
            using (zzqEntities1 db = new zzqEntities1())
            {
                var st = db.student.Where(x => x.Studentid == id).ToList();
                return st;
            }
        }
   /// <summary>
        /// 修改
        /// </summary>
        /// <param name="studentid">編號</param>
        /// <param name="studentname">姓名</param>
        /// <param name="studentaddress">是否停用</param>
        /// <param name="phone">密碼</param>
        /// <returns></returns>
        public static int update(int id, string studentname, string studentaddress, string phone)
        {
            using (zzqEntities1 db = new zzqEntities1())
            {
                var st = db.student.Where(x => x.Studentid == id).FirstOrDefault();
                st.Studentid = id;
                st.Studentname = studentname;
                st.Studentaddress = studentaddress;
                st.phone = phone;
                return db.SaveChanges();
            }
        
        }

BLL層

using DAL;
引用DAL層

登錄

   /// <summary>
        /// 登錄
        /// </summary>
        /// <param name="studentname"></param>
        /// <param name="studentaddress"></param>
        /// <param name="phone"></param>
        /// <returns></returns>
        public static int Login(string studentname, string phone)
        {
            try
            {
                int count = kaoshiDAL.kaoshidal.Login(studentname, phone);
                return count;
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        }

查詢

/// <summary>
       /// 查詢
       /// </summary>
       /// <returns></returns>
        public static List<student> studentSelect() {
            try
            {
                return kaoshiDAL.kaoshidal.studentSelect();
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        
        }

添加

   /// <summary>
        /// 添加
        /// </summary>
        /// <param name="studentname">姓名</param>
        /// <param name="studentaddress">是否停用</param>
        /// <param name="phone">密碼</param>
        /// <returns></returns>
        public static int Insert(string studentname, string studentaddress, string phone) {
            try
            {
                return kaoshiDAL.kaoshidal.Insert(studentname,studentaddress,phone);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        
        }

刪除

  /// <summary>
        /// 刪除
        /// </summary>
        /// <param name="studentid"></param>
        /// <returns></returns>
        public static int Delete(int id)
        {
            try
            {
                return kaoshiDAL.kaoshidal.Delete(id);
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        
        }

修改

 /// <summary>
        /// 查詢編號
        /// </summary>
        /// <param name="studentid"></param>
        /// <returns></returns>
        public static List<student> updateSelect(int id)
        {
            try
            {
                return kaoshiDAL.kaoshidal.updateSelect(id);
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        }
         /// <summary>
        /// 修改
        /// </summary>
        /// <param name="studentid"></param>
        /// <param name="studentname"></param>
        /// <param name="studentaddress"></param>
        /// <param name="phone"></param>
        /// <returns></returns>
        public static int update(int id, string studentname, string studentaddress, string phone)
        {
            try
            {
                return kaoshiDAL.kaoshidal.update(id, studentname, studentaddress, phone);
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        }

mvc項目中的Models文件夾的model類

using DAL;
using BLL;
這裡引用DAL層和BLL層

登錄

  /// <summary>
        /// 登錄
        /// </summary>
        /// <param name="studentname"></param>
        /// <param name="studentaddress"></param>
        /// <param name="phone"></param>
        /// <returns></returns>
        public static int Login(string studentname, string phone)
        {
            try
            {
              int count= kaoshiBLL.kaoshibll.Login(studentname, phone);
              return count;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

查詢

  /// <summary>
        /// 查詢
        /// </summary>
        /// <returns></returns>
        public static List<student> studentSelect()
        {
            try
            {
                return kaoshiBLL.kaoshibll.studentSelect();
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

添加

  /// <summary>
        /// 添加
        /// </summary>
        /// <param name="studentname">姓名</param>
        /// <param name="studentaddress">是否停用</param>
        /// <param name="phone">密碼</param>
        /// <returns></returns>
        public static int Insert(string studentname, string studentaddress, string phone) {
            try
            {
                return kaoshiBLL.kaoshibll.Insert(studentname,studentaddress,phone);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        
        }

刪除

 /// <summary>
        /// 刪除
        /// </summary>
        /// <param name="studentid"></param>
        /// <returns></returns>
        public static int Delete(int id)
        {
            try
            {
                return kaoshiBLL.kaoshibll.Delete(id);
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

修改

/// <summary>
        /// 查詢編號
        /// </summary>
        /// <param name="studentid"></param>
        /// <returns></returns>
        public static List<student> updateSelect(int id)
        {
            try
            {
                return kaoshiBLL.kaoshibll.updateSelect(id);
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="studentid"></param>
        /// <param name="studentname"></param>
        /// <param name="studentaddress"></param>
        /// <param name="phone"></param>
        /// <returns></returns>
        public static int update(int id, string studentname, string studentaddress, string phone)
        {
            try
            {
                return kaoshiBLL.kaoshibll.update(id, studentname, studentaddress, phone);
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

在mvc項目中的Controllers文件夾創建Home控制器

using Kaoshi.Models;
using kaoshiDAL;
using kaoshiBLL;

登錄

   /// <summary>
        /// 登錄
        /// </summary>
        /// <returns></returns>
        public ActionResult Login()
        {
            
            return View();
        }
        public ActionResult ALogin(string studentname,  string phone)
        {
            int count = kaoshiModel.Login(studentname, phone);
            if (count >0)
            {
                return Content("<script>alert('登錄成功');window.location.href='/Home/Index';</script>");
                  
            }
            else
            {
                return Content("<script>alert('登錄失敗');window.location.href='/Home/Login';</script>");
            }
            
        }

查詢

   /// <summary>
        /// 查詢
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Index()
        {
            List<student> stu = kaoshiModel.studentSelect();
            return View(stu);
        }

註冊

 /// <summary>
        /// 註冊
        /// </summary>
        /// <returns></returns>
        public ActionResult Zhuce()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Azhuce(string studentname, string studentaddress, string phone)
        {
            int  st = kaoshiModel.Insert(studentname,studentaddress,phone);
            if (st > 0)
            {
                return Content("<script>alert('註冊成功');window.location.href='/Home/Login';</script>");
            }
            else {
                return Content("<script>alert('註冊失敗');window.location.href='/Home/Zhuce';</script>");
            }
        }

刪除

 /// <summary>
        /// 刪除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Delete(int id)
        {
            int st = kaoshiModel.Delete(id);
            if (st > 0)
            {
                return Content("<script>alert('刪除成功');window.location.href='/Home/Index';</script>");
            }
            else
            {
                return Content("<script>alert('刪除失敗');window.location.href='/Home/Index';</script>");
            }
        }

修改

   //修改
        public ActionResult Update(int id)
        {
            List<student> li = kaoshiModel.updateSelect(id);
            return View(li);
        }
        public ActionResult updatestudent(int id, string studentname, string studentaddress, string phone)
        {
            int st = kaoshiModel.update(id, studentname, studentaddress, phone);
            if (st>0)
            {
                 return Content("<script>alert('修改成功');window.location.href='/Home/Index';</script>");
            }
            else
            {
                return Content("<script>alert('修改失敗');window.location.href='/Home/Index';</script>");
            }
        }

Index視圖

@{
    ViewBag.Title = "Index";
}
<script type="text/javascript">
    function Update(id) {
        location.href = "/Home/Update/" + id;
    }

    function del(id) {
        if (confirm("是否刪除?")) {
            
            location.href = '/Home/Delete/' + id;
        }
    }
</script> 
 <a href="/Home/Login">登錄</a>
<table>
    <tr>
        <th>姓名<th>
         <th>密碼</th>
         <th>是否停用</th>
        <th colspan="2">操作</th>
    </tr>
    @foreach (var item in Model)
    {
    <tr>
     <td>@item.Studentname</td>
        <td>@item.phone</td>
        <td>@item.Studentaddress</td>
         <td><a href="#" onclick="Update(@item.Studentid)">修改</a></td>
         <td><a href="#" onclick="del(@item.Studentid)">刪除</a></td>
    </tr>
    }
</table>

Login視圖

@{
    ViewBag.Title = "Login";
}

<h2>登錄</h2>
 @using (Html.BeginForm("ALogin", "Home", FormMethod.Post))
   {
       
   
           <input type ="text" name="studentname"   placeholder="請輸入姓名"/> 
           <input type ="password" name="phone" placeholder="請輸入密碼"/>  
          
          
            <button type="submit" class="blue" >登錄</button> 
             <a href="/Home/Zhuce">註冊</a>
         }

Update視圖

@{
    ViewBag.Title = "Update";
}
 
@using (Html.BeginForm("updatestudent", "Home", FormMethod.Post)) { 
<table>
    @foreach (var item in Model)
    {
         <tr>
              <td>編號:</td>
            <td>
                <input   type="text" value="@item.Studentid"  name="id" readonly="readonly"/>
            </td>
             
         </tr>
        <tr>
              <td>姓名:</td>
            <td>
                <input   type="text" value="@item.Studentname"  name="studentname" readonly="readonly"/>
            </td>
             
         </tr>
        <tr>
              <td>是否停用:</td>
            <td>
                <input type="text" value="@item.Studentaddress"  name="studentaddress"/>
            </td>
             
         </tr>
        <tr>
              <td>密碼:</td>
            <td>
                <input  type="text" value="@item.phone"  name="phone" readonly="readonly"/>
            </td>
             
         </tr>
        
         <tr>
                <td colspan="2">
                    <input type="submit" id="btn" value="修改" /></td>
            </tr>
    }
     
</table>


}

Zhuce視圖

@{
    ViewBag.Title = "Zhuce";
}
 
@using (Html.BeginForm("Azhuce", "Home", FormMethod.Post)) { 

    <table style="width: 100%;">
        <tr>
            <td>姓名:</td>
            <td>
                <input type="text" placeholder="請輸入姓名" name="studentname" />
            </td>
             
        </tr>
        <tr>
           <td>狀態:</td>
            <td>
                <select name="studentaddress">
                    <option value="啟用" selected="selected">啟用</option>
                     <option value="禁用">禁用</option>
                </select>
            </td>  
        </tr>
        <tr>
             <td>密碼:</td>
            <td>
                <input type="text" placeholder="請輸入密碼" name="phone" />
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input id="btn" type="submit" value="註冊" />
            </td>
        </tr>
    </table>

}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文件下載是很多網站中含有的常用功能,在ASP.NET中可以使用FileStream類、HttpRequest對象、HttpResponse對象相互結合,實現輸出硬碟文件的功能。該方法支持大文件、續傳、速度限制、資源占用小。 FileStream類:MSDN上的解釋為,FileStrem類對文件系統上 ...
  • 事件:定義了事件成員的類允許通知其他其他對象發生了特定的事情。具體的說,定義了事件成員的類能提供以下功能 1.方法能登記它對事件的關註 2.方法能註銷它對事件的關註 3.事件發生時,登記了的方法將收到通知 類型之所以能提供事件通知功能,是因為類型維護了一個已登記方法的列表。事件發生後,類型將通知列表 ...
  • 寫在前面 前面一篇文章介紹了非同步編程的基本內容,同時也簡要說明瞭async和await的一些用法。本篇文章將對async和await這兩個關鍵字進行深入探討,研究其中的運行機制,實現編碼效率與運行效率的提升。 非同步方法描述:使用async修飾符來標識一個方法或Lambda表達式的,被稱之為非同步方法。 ...
  • 在控制臺中繪製圖像是一件非常有趣的事,不知情的人看到了會感覺很驚訝,如果你有GDI+繪製基礎,那麼繼續往下看。 運行效果 代碼中用到的素材圖片 ...
  • 常用控制項樣式: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> ...
  • 看了老師的教程後,自己一點感悟記錄下來: 1.在頁面提交後,動態生成的控制項會丟失, 但如果生成控制項的代碼在pageload中,就可以,原理是每次生成頁面都執行生成. 2.動態按件或頁面原來控制項, 在頁面往返重新生成時, 都有一個特點.就是控制項裡面的值和狀態會保留下來. 如: 在DorpDownLis ...
  • 項目發佈後 在本地發佈可以運行 在伺服器就會出現這種錯誤 在網上也查找了各種資料 解決方案 都沒有解決 因為我用的C# 首先在 Webconfig配置文件中的 system.web中加入 <customErrors mode="Off"/> 當你在出錯的時候再刷新一下頁面 就會出現 具體的錯誤信息 ...
  • 首先打開vs軟體新建項目創建web中的mvc項目再右擊解決方案創建類庫項目分別創建DAL層和BLL層再把DAL層和BLL層的類重命名在mvc項目中的Models文件夾創建model類在DAL創建ADO.NET實體數據模型後把DAL層中App.Config文件中的鏈接字元串複製到mvc項目的Web.c ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...