📜  使用C#和实体框架的ASP.NET MVC中的基本CRUD(创建,读取,更新,删除)

📅  最后修改于: 2021-05-29 16:18:36             🧑  作者: Mango

先决条件:

  • 下载并安装Microsoft SQL Server Management Studio
  • 下载并设置Visual Studio社区版本

MVC代表模型视图控制器。它是一种用于分离业务逻辑,表示逻辑和数据的设计模式。基本上,它提供了样式Web应用程序的模式。根据MVC,您可以将应用程序划分为3个层,如下所示:

1.模型层:模型组件对应于用户使用的所有或任何与数据相关的逻辑。这将表示在View和Controller组件之间传输的信息或其他与业务逻辑相关的数据。例如,一个Customer对象将从数据库中检索客户信息,对其进行操作,并将其数据更新回数据库或使用它来呈现数据。

2.视图层:视图组件用于设备的所有UI逻辑。例如,“客户”视图将包括最终用户与之交互的所有UI组件,例如文本框,下拉菜单等。

3.控制器:控制器充当模型之间的接口,并考虑组件以处理所有业务逻辑和传入请求,使用模型组件操纵数据,并与视图交互以呈现最终输出。例如,客户控制器将处理客户视图中的所有交互和输入,并使用客户模型更新数据库。一个等效的控制器是

控制器将不会查看客户数据。

ASP.NET是Microsoft创建的服务器端Web应用程序框架,可在Windows上运行,并于2000年代初期启动。 ASP.NET允许开发人员制作Web应用程序,Web服务和动态内容驱动的网站。最新版本的ASP.NET是4.7.1

要了解如何在Visual Studio中设置项目以及如何创建数据库,请参阅以下链接:

  • 在MS-SQL Server Management Studio中创建数据库
  • 在Visual Studio中创建一个项目

1.用以下几列创建一个数据库:这只是一个演示,使您理解本文中的代码。您可以根据需要创建自己的数据库。

2.在Visual Studio中创建项目请按照上面提供的链接中给出的准则创建项目。创建项目后,添加实体数据模型以将连接字符串添加到您的web.config文件中,请按照此文章将实体数据模型添加到ASP.NET项目中的操作。以下EDMX图表将显示在您的解决方案窗口中。

ASP.NET CRUD(创建,读取,更新,删除)

1.立即创建以在数据库中创建新记录,在新创建的控制器中编写以下代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
  
namespace CRUDDemo.Controllers
{
    public class CRUDController : Controller
    {
        // To create View of this Action result
        public ActionResult create() 
        {
            return View();
        }
  
        // Specify the type of attribute i.e.
        // it will add the record to the database
        [HttpPost] 
        public ActionResult create(Student model)
        {
              
            // To open a connection to the database
            using(var context = new demoCRUDEntities()) 
            {
                // Add data to the particular table
                context.Student.Add(model); 
                  
                // save the changes
                context.SaveChanges(); 
            }
            string message = "Created the record successfully";
              
            // To display the message on the screen
            // after the record is created successfully
            ViewBag.Message = message;     
              
            // write @Viewbag.Message in the created
            // view at the place where you want to
            // display the message
            return View(); 
        }
    }
}

写完之后,单击第一个操作结果,然后单击AddView,然后选择“模板”作为“创建”,并选择“模型类”作为您自己创建的模型,并选择数据上下文类作为您自己创建的EDMX模型。然后运行项目并转到URL https:// localhost:port_number / Controller_name / Action_Method_name

例如,https:// localhost:44326 / CRUD / create

2.阅读:现在,按照以下给出的代码在屏幕上查看添加的数据

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
  
namespace CRUDDemo.Controllers
{
    public class CRUDController : Controller {
        [HttpGet] // Set the attribute to Read
            public ActionResult
            Read()
        {
            using(var context = new demoCRUDEntities())
            {
                  
                // Return the list of data from the database
                var data = context.Student.ToList(); 
                return View(data);
            }
        }
    }
}

在此之后添加视图,但请记住将模板更改为列表。然后运行项目并转到URL
https:// localhost:port_number / Controller_name / Action_Method_name
例如https:// localhost:44326 / CRUD / Read

3.更新:现在,要更新现有记录,请遵循以下代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
  
namespace CRUDDemo.Controllers
{
    public class CRUDController : Controller
    {
          
        // To fill data in the form 
        // to enable easy editing
        public ActionResult Update(int Studentid) 
        {
            using(var context = new demoCRUDEntities())
            {
                var data = context.Student.Where(x => x.StudentNo == Studentid).SingleOrDefault();
                return View(data);
            }
        }
  
        // To specify that this will be 
        // invoked when post method is called
        [HttpPost]
        [ValidateAntiForgeryToken] 
        public ActionResult Update(int Studentid, Student model)
        {
            using(var context = new demoCRUDEntities())
            {
                  
                // Use of lambda expression to access
                // particular record from a database
                var data = context.Student.FirstOrDefault(x => x.StudentNo == Studentid); 
                  
                // Checking if any such record exist 
                if (data != null) 
                {
                    data.Name = model.Name;
                    data.Section = model.Section;
                    data.EmailId = model.EmailId;
                    data.Branch = model.Branch;
                    context.SaveChanges();
                      
                    // It will redirect to 
                    // the Read method
                    return RedirectToAction("Read"); 
                }
                else
                    return View();
            }
        }
    }
}

在此之后,添加视图的方式与之前类似,但是请记住将模板更改为“编辑”。然后运行项目并转到URL https:// localhost:port_number / Controller_name / Action_Method_name?ID_U_want_to_edit

例如,https:// localhost:44326 / CRUD / Update?Studentid = 1

4.立即删除,要从数据库中删除一条记录,请遵循以下代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
  
namespace CRUDDemo.Controllers
{
    public class CRUDController : Controller {
        public ActionResult Delete()
        {
            return View();
        }
  
        [HttpPost]
        [ValidateAntiForgeryToken] public ActionResult
        Delete(int Studentid)
        {
            using(var context = new demoCRUDEntities())
            {
                var data = context.Student.FirstOrDefault(x = > x.StudentNo == Studentid);
                if (data != null) {
                    context.Student.Remove(data);
                    context.SaveChanges();
                    return RedirectToAction("Read");
                }
                else
                    return View();
            }
        }
    }
}

在添加视图之后,就像以前一样,但是请记住将模板更改为“删除”。然后运行项目并转到URL https:// localhost:port_number / Controller_name / Action_Method_name?ID_U_want_to_Delete
例如,https:// localhost:44326 / CRUD / Delete?Studentid = 1

笔记:

  • 自动生成的HTML可以根据您的选择进行修改。
  • 如果您想查看完整的源代码及其工作方式,可以单击GitHub Link查看我的GitHub存储库。