MVC 手動 4

朽木zi發表於2020-12-05

1、啟動SQLServer建立資料庫,並建立學生表和使用者表。表結構如下:

在這裡插入圖片描述
在這裡插入圖片描述

2、在表中輸入資料
在這裡插入圖片描述

3、啟動Visual Studio新建MVC專案。
在這裡插入圖片描述

4、選中model,新增類---->資料------>ADO.net資料模型,出現如圖所示的介面
在這裡插入圖片描述

5、新增,選擇來自資料庫EF設計器,如圖所示。
在這裡插入圖片描述

5、選擇SQLServer資料庫檔案,選擇伺服器的名稱,計算機名
在這裡插入圖片描述

6、伺服器連線好後,使用SQlServer身份驗證,輸如sa和密碼,選擇資料庫,並進行測試
在這裡插入圖片描述

7、點選確定,新建連線並儲存下連線(也可不儲存)
在這裡插入圖片描述

7、選擇表,所有表或部分均可,根據需要確定
在這裡插入圖片描述

8、最後表自動新增進來,並生成.edmx檔案

8、在model中,新建兩個資料夾studentMessage用於存放學生的資訊,在syudentMessge中,新增介面,並命名IStu

interface IStu
    {
        Student GetStudent(string id);
        IQueryable<Student> FindAllStudent();
        IQueryable<Student> FindByKey(string name, string cla, string sno);
        void Add(Student stu);
        void Delete(Student stu);
        void Updata(Student stu);
        void Save();
}

在studentMessage下,新增類,並命名Stu,

namespace FirstExample.Models.studentMessage
{
    public class Stu:FirstExample.Models.studentMessage.IStu
    {
        MyStudentEntities db = new MyStudentEntities();
        public Student GetStudent(string id)
        {
            return db.Students.SingleOrDefault(s => s.Sno == id);
        }
        public IQueryable<Student> FindAllStudent()
        {
            return db.Students;
        }
        public IQueryable<Student> FindByKey(string name, string cla, string sno)
        {
            return db.Students.Where(s => s.Sno == sno && s.Sname == name && s.Sdept == cla);
        }
        public void Add(Student stu)
        {
            db.Students.Add(stu);
            Save();
        }
        public void Delete(Student stu)
        {
            db.Students.Remove(stu);
            Save();
        }
        public void Updata(Student stu)
        {
            Student stud = db.Students.SingleOrDefault(s => s.Sno == stu.Sno);
            stud.Sno = stu.Sno;
            stud.Sname = stu.Sname;
            stud.Sage = stu.Sage;
            stud.Sdept = stu.Sdept;
            stud.Ssex = stu.Ssex;

            Save();

        }
        public void Save()
        {
            db.SaveChanges();
        }


    }
}

9、接下來要建立控制器,右鍵—新增—控制器,選擇包含讀/寫操作的MVC5控制器
在這裡插入圖片描述

10、控制器建好之後,自動把方法都給新增進來了

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Lession1.Models;
using Lession1.Models.Students;

namespace Lession1.Controllers.Student
{
    public class MyStudentController : Controller
    {
        Stu student = new Stu();

        //
        // GET: /MyStudent/
        public ActionResult Index()
        {
            return View(student.FindAllStudent());
        }

        //
        // GET: /MyStudent/Details/5
        public ActionResult Details(string id)
        {
            return View(student.GetStudent(id));
        }

        //
        // GET: /MyStudent/Create
        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /MyStudent/Create
        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here
                Student st = new Student();
                st.Sno = collection["Sno"];
                st.Sname = collection["Sname"];
                st.Ssex = collection["Ssex"];
                st.Sage = Convert.ToDecimal(collection["Sage"]);
                st.Sdept = collection["Sdept"];
                student.Add(st);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /MyStudent/Edit/5
        public ActionResult Edit(string id)
        {
            return View(student.GetStudent(id));
        }

        //
        // POST: /MyStudent/Edit/5
        [HttpPost]
        public ActionResult Edit(string id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
                student st = new student();
                st.Sno = collection["Sno"];
                st.Sname = collection["Sname"];
                st.Ssex = collection["Ssex"];
                st.Sage = Convert.ToDecimal(collection["Sage"]);
                st.Sdept = collection["Sdept"];
                student.Updata(st);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /MyStudent/Delete/5
        public ActionResult Delete(string id)
        {
            return View(student.GetStudent(id));
        }

        //
        // POST: /MyStudent/Delete/5
        [HttpPost]
        public ActionResult Delete(string id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
                student st = student.GetStudent(collection["Sno"]);
                student.Delete(st);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}

11、接下來,新增檢視,選中方法,點選右鍵—新增檢視,選擇相應的類,點選新增
在這裡插入圖片描述

12、修改內容選項為學號Sno,如下圖所示
在這裡插入圖片描述

13、控制器建完後,ID預設值為int,把控制器中所有的id型別有int改為string型別
在這裡插入圖片描述

14、在控制器中using模型,

using FirstExample.Models;
using FirstExample.Models.studentMessage;
//並用類建立物件student
public class MyStudentController : Controller
    {
       Stu student = new Stu();
        // GET: MyStudent
        public ActionResult Index()
        {
            return View(student.FindAllStudent());
        }

15、操作完後,瀏覽頁面,顯示結果如下
在這裡插入圖片描述

2、登入功能
在模型類中新增類Class1
在這裡插入圖片描述

在控制器中
Class1 S32R = new Class1();
在這裡插入圖片描述
在這裡插入圖片描述

在denglu.cshtml檢視中

在這裡插入圖片描述
在這裡插入圖片描述

相關文章