2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > vue.js crud_ASP.NET CORE —从零到英雄学习ADO.NET中的CRUD操作

vue.js crud_ASP.NET CORE —从零到英雄学习ADO.NET中的CRUD操作

时间:2024-03-09 22:50:19

相关推荐

vue.js crud_ASP.NET CORE —从零到英雄学习ADO.NET中的CRUD操作

vue.js crud

Core中的CRUD操作

在此 Core教程中,您将从一开始就学习在中进行CRUD操作。 本教程将帮助您学习,以便您可以开始使用C#在 CORE中进行数据库编程。

从GitHub下载此应用程序的完整源代码

________________________________________________________

听众

本教程适用于希望快速学习 Core和的每个人。 所有的事情都以简单和逐步的方式进行解释。 您可以下载完整的源代码,然后在PC上运行它们。

在这里,我将对SQL Server数据库中的教师表执行CRUD(创建,读取,更新和删除)操作。

我个人认为“学习任何编程语言的最佳方法是首先构建CRUD操作”。

本教程分为以下部分:

1.创建一个新的 Core Web应用程序
2.配置 Core Web应用程序
3.创建布局,ViewImports,ViewStart并添加Bootstrap
4.创建数据库
5.在应用程序中添加数据库的连接字符串
6.添加教师模型班
7.添加客户端验证功能
8.执行创建教师功能
9.执行READ教师功能
10.执行UPDATE老师功能
11.执行DELETE教师功能

1.创建一个新的 Core Web应用程序

在您的Visual Studio中,选择“文件>新建项目”。 一个新的窗口将在这里打开:

一个。 在左侧,选择“Installed > Visual C# > Web”。
b。 在中间部分,选择“Core Web Application”。
C。 在下部,将项目名称命名为“CRUDADO”或您想要的任何名称,然后选择驱动器上将存储项目文件的位置。 还要选择选项-“Create directory for solution”,最后单击“OK”按钮来创建您的项目。

创建 Core Web应用程序

接下来,将打开一个新窗口,要求您选择项目模板,.net框架和其他一些内容。 在此窗口中,请确保选择以下内容:

一个。 在顶部的2个下拉列表中,选择“.NET Core”和“Core 2.0”。 您还可以选择大于2.0的 Core版本。
b。 选择“Empty”项目模板。
C。 单击“OK”按钮以创建您的 Core Web应用程序

选择 Core应用程序的属性

2.配置 Core Web应用程序

您的应用程序应支持MVC框架,路由和静态文件。 所有这些都可以从位于应用程序根目录中的'Startup.cs'类完成。

打开Startup.cs类,并在ConfigureServices()Configure()方法内添加这些支持,如下所示:

using Microsoft.AspNetCore.Builder;

using Microsoft.AspNetCore.Hosting;

using Microsoft.Extensions.DependencyInjection;

namespace CRUDADO

{

public class Startup

{

public void ConfigureServices(IServiceCollection services)

{

services.AddMvc();

}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

{

app.UseStaticFiles();

app.UseDeveloperExceptionPage();

app.UseMvc(routes =>

{

routes.MapRoute(

name: "default",

template: "{controller=Home}/{action=Index}/{id?}");

});

}

}

}

3.创建布局,ViewImports,ViewStart并添加Bootstrap

在项目的根目录中创建“Views”文件夹,并在其中创建“Shared”文件夹。

接下来,右键单击“Shared”文件夹,然后选择“Add > New Item”。 您将获得一个显示项目列表的新窗口,从该列表中选择“MVC View Layout Page”,然后单击“Add”按钮。

这会将_Layout.cshtml文件添加到Shared文件夹中,并且将打开以进行编辑。 您需要向其中添加以下代码:

<!DOCTYPE html>

<html>

<head>

<title>@ViewData["Title"]</title>

<meta name="viewport" content="width=device-width" />

<link href="/lib/bootstrap/dist/css/bootstrap.css" rel="stylesheet" />

</head>

<body class="m-1 p-1">

@RenderBody()

</body>

</html>

接下来,下载Bootstrap软件包,并将Bootstrap zip文件内容解压缩到项目的'wwwroot > lib'文件夹中。

Bootstrap用于创建移动友好的响应式布局。 它是世界上最受欢迎CSS框架。

接下来,右键单击“Views”文件夹,然后选择“Add > New Item”。 在项目列表中,选择“MVC View Imports Page”,然后单击“Add”按钮。 这将添加_ViewImports.cshtml文件。

通过将以下代码添加到该文件中,为视图导入内置的标签助手和模型名称空间:

@using CRUDADO.Models

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

同样,右键单击“Views”文件夹,然后选择“Add > New Item”。 在项目列表中,选择“MVC View Start Page”,然后单击“Add”按钮。

这将使用以下初始代码添加_ViewStart.cshtml文件:

@{

Layout = "_Layout";

}

它告诉所有视图将具有_Layout.cshtml文件中的布局,该文件位于Shared文件夹内。

4.创建数据库

您必须在PC中安装SQL Server (任何版本)。 但是,其他任何版本SQL Server(如、、)都可以使用。 您可以使用免费使用SQL Server 开发人员版和Express版- 下载SQL Server 。

接下来,您需要连接到SQL Server,这可以使用Visual Studio中SQL Server对象资源管理器来完成。 因此,View > SQL Server Object Explorer in Visual Studio选择“View > SQL Server Object Explorer in Visual StudioView > SQL Server Object Explorer in Visual Studio”。

当“SQL Server Object Explorer”窗口打开时,右键单击“ SQL Server”节点,然后选择“Add SQL Server

添加SQL Server

接下来,Connect打开一个“Connect窗口。 在此窗口中,选择“Browse”选项卡,然后单击“Local”节点以将其打开。

在此节点内,选择第二个选项(localdb)\MSSQLLocalDB。 选择它之后,您会注意到在同一窗口中的“Server Name:”字段现在具有(localdb)\MSSQLLocalDB值。

现在,您只需单击“Connect按钮即可连接到SQL Server。 见下图:

在SQL Server对象资源管理器中连接SQL Server

在几秒钟内,SQL Server将被连接并可以使用。

接下来,右键单击“Databases节点,然后选择“Add New Database.

添加新数据库

在对话框中,输入School作为数据库名称,然后单击“OK以创建数据库。

创建学校数据库

学校数据库已创建且为空。 因此,现在首先创建“ Teacher”表。

单击“School数据库名称前面的►符号以打开其中的各个节点。

接下来,右键单击Tables节点,然后选择Add New Table

在Visual Studio中将打开一个Table Design Window。 您可以在此处添加“教师”表的字段。

在此窗口的“T-SQL选项卡中,您可以输入以下脚本来创建“Teacher”表:

CREATE TABLE [dbo].[Teacher]

(

[Id] INT NOT NULL IDENTITY(1,1) PRIMARY KEY,

[Name] VARCHAR(50) NOT NULL,

[Skills] VARCHAR(250) NOT NULL,

[TotalStudents] INT NOT NULL,

[Salary] MONEY NOT NULL,

[AddedOn] DATE NOT NULL DEFAULT GETDATE()

)

接下来,单击“Update按钮以开始创建此表,请参见下图,该图对此进行了说明:

表格设计窗口

您将获得一个名为“Preview Database Updates”的新对话框。 在这里单击“Update Database”按钮,然后将在几秒钟内创建库存表。

预览数据库更新窗口

您可以在“表”节点中找到此新创建的表。

“教师”表具有6列,分别是:

1. Id —主键列,由于具有Identity(1,1)属性,因此将从1自动生成。
2.名称-用于存储教师姓名的varchar(50)列。
3.技能-用于存储老师的技能。
4. TotalStudents —一个Int列,用于存储给定老师教的学生总数。
5.薪金-用于存储老师的薪水。
6.AddedOn —用于存储创建记录的时间。 该列具有日期类型,是否使用GETDATE()SQL函数自动获取当前时间。

请注意,这些列具有NOT NULL属性,因此它们中不能包含NULL。

5.在应用程序中添加数据库的连接字符串

连接字符串将参数存储到数据库,并用于将应用程序连接到数据库。 这些参数是驱动程序的名称,服务器名称和数据库名称。 它还包含安全性信息,例如数据库连接所需的用户名和密码。

连接字符串存储在appsettings.json文件中,该文件位于应用程序的根目录中。

在解决方案资源管理器中右键单击项目名称,然后选择Add > New Item。 然后,在“Add New Item”窗口打开时,选择Configuration file文件,并将其命名为appsettings.json(请参见下图)。 最后点击“Add”按钮。

添加appsettings.json文件

该文件将被创建并打开以在Visual Studio中进行编辑。 向其添加以下连接字符串:

{

"ConnectionStrings": {

"DefaultConnection": "Server= (localdb)\\MSSQLLocalDB;Database=School;Trusted_Connection=True;MultipleActiveResultSets=true"

}

}

我在连接字符串中将可信连接定义为true,因此使用当前用户的Windows凭据对SQL Server进行身份验证。

6.添加教师模型班

在解决方案资源管理器中右键单击项目名称,然后选择“Add > New Folder”。 将该文件夹命名为“Models”。 然后右键单击此“Models”文件夹,然后选择“Add > New Item”。

在打开的窗口中,选择一个新的班级并将其命名为教师。 将以下属性添加到此类:

using CRUDADO.CustomValidation;

using System;

using System.Collections.Generic;

using ponentModel.DataAnnotations;

using System.Linq;

using System.Threading.Tasks;

namespace CRUDADO.Models

{

public class Teacher

{

[Required]

public int Id { get; set; }

[Required]

public string Name { get; set; }

[Required]

[SkillsValidate(Allowed = new string[] { " Core", " MVC", " Web Forms" }, ErrorMessage = "You skills are invalid")]

public string Skills { get; set; }

[Range(5, 50)]

public int TotalStudents { get; set; }

[Required]

public decimal Salary { get; set; }

[Required]

public DateTime AddedOn { get; set; }

}

}

此类在数据库的Teacher表中的6列中具有6个属性。 我已经在ID,名称,技能,薪水和AddedOn属性上应用了[Required]属性,TotalStudent属性与[Range]属性一起应用,因此它只允许5到50的值。

还要注意应用于技能属性的[SkillsValidate]属性。[SkillsValidate]属性是一个自定义验证属性,通过该属性我将强制Skills属性仅接受以下3个值:

1. Core
2. MVC
3. Web表单

接下来,我将创建[SkillsValidate]自定义验证属性。 因此,在应用程序的根目录上创建一个新文件夹,并将其命名为'CustomValidation'。 在此文件夹中,添加一个名为“SkillsValidate.cs”的新类,SkillsValidate.cs其中添加以下代码:

using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

namespace CRUDADO.CustomValidation

{

public class SkillsValidate : Attribute, IModelValidator

{

public string[] Allowed { get; set; }

public string ErrorMessage { get; set; }

public IEnumerable<ModelValidationResult> Validate(ModelValidationContext context)

{

if (Allowed.Contains(context.Model as string))

return Enumerable.Empty<ModelValidationResult>();

else

return new List<ModelValidationResult> {

new ModelValidationResult("", ErrorMessage)

};

}

}

}

7.添加客户端验证功能

客户端验证功能由“jQuery”和2个验证插件执行,它们分别是:

1.jQuery验证
2. jQuery验证不引人注目

要安装这3个Package Manager Console,请在“Package Manager Console”窗口中运行以下命令:

PM> Install-Package jQuery -Version 3.3.1

PM> Install-Package jQuery.Validation -Version 1.17.0

PM> Install-Package jQuery.Validation.Unobtrusive -Version 2.0.20710

8.执行创建教师功能

在应用程序的根目录上创建“Controllers”文件夹。 在此文件夹中,添加一个名为'HomeController.cs'的新控制器。 控制器将具有如下所示的初始代码:

using System.Collections.Generic;

using System.Linq;

using Microsoft.AspNetCore.Mvc;

namespace CRUDADO.Controllers

{

public class HomeController : Controller

{

public IActionResult Index()

{

return View();

}

}

}

连接字符串保存在appsettings.json文件中。 要访问此文件,我必须通过“依赖关系注入”功能获取IConfiguration接口的对象。 因此,我必须在HomeController的构造函数中添加IConfiguration接口,并且MVC框架会自动为其提供对象。

因此,将家用控制器的代码更改为如下所示:

using System.Collections.Generic;

using System.Linq;

using Microsoft.AspNetCore.Mvc;

using Microsoft.Extensions.Configuration;

namespace CRUDADO.Controllers

{

public class HomeController : Controller

{

public IConfiguration Configuration { get; }

public HomeController(IConfiguration configuration)

{

Configuration = configuration;

}

public IActionResult Index()

{

return View();

}

}

}

创建教师功能是通过一种称为“CREATE”的新操作方法完成的。 因此,如下所示将Create Action方法添加到Home Controller中:

using System;

using System.Collections.Generic;

using System.Data;

using System.Data.SqlClient;

using System.Linq;

using System.Threading.Tasks;

using CRUDADO.Models;

using Microsoft.AspNetCore.Mvc;

using Microsoft.Extensions.Configuration;

namespace CRUDADO.Controllers

{

public class HomeController : Controller

{

public IConfiguration Configuration { get; }

public HomeController(IConfiguration configuration)

{

Configuration = configuration;

}

public IActionResult Index()

{

return View();

}

public IActionResult Create()

{

return View();

}

[HttpPost]

public IActionResult Create_Post(Teacher teacher)

{

if (ModelState.IsValid)

{

string connectionString = Configuration["ConnectionStrings:DefaultConnection"];

using (SqlConnection connection = new SqlConnection(connectionString))

{

string sql = $"Insert Into Teacher (Name, Skills, TotalStudents, Salary) Values ('{teacher.Name}', '{teacher.Skills}','{teacher.TotalStudents}','{teacher.Salary}')";

using (SqlCommand command = new SqlCommand(sql, connection))

{

mandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

connection.Close();

}

return RedirectToAction("Index");

}

}

else

return View();

}

}

}

在Create Action方法中,我在下面的代码行中获得了连接字符串:

string connectionString = Configuration["ConnectionStrings:DefaultConnection"];

然后,我使用SqlCommand对象通过运行插入SQL查询来插入教师的记录:

string sql = $"Insert Into Teacher (Name, Skills, TotalStudents, Salary) Values ('{teacher.Name}', '{teacher.Skills}','{teacher.TotalStudents}','{teacher.Salary}')";

接下来,在应用程序的根目录中添加“Views”文件夹。 在此文件夹中,创建一个名为“ Home”的新文件夹。

接下来,在此“Home”文件夹中创建一个名为“Create.cshtml”的新视图(即“Views>Home”)。 将以下代码添加到该视图:

@model Teacher

@{

Layout = "_Layout";

var title = "CREATE Teacher";

ViewData["Title"] = title;

}

<style>

.input-validation-error {

border-color: red;

}

</style>

<h2>@title</h2>

<divasp-validation-summary="ModelOnly" class="text-danger"></div>

<formclass="m-1 p-1" method="post">

<div class="form-group">

<labelasp-for="Name"></label>

<inputasp-for="Name" class="form-control" />

<spanasp-validation-for="Name" class="text-danger"></span>

</div>

<div class="form-group">

<labelasp-for="Skills"></label>

<inputasp-for="Skills"type="text" class="form-control" />

<spanasp-validation-for="Skills" class="text-danger"></span>

</div>

<div class="form-group">

<labelasp-for="TotalStudents"></label>

<inputasp-for="TotalStudents"type="text" class="form-control" />

<spanasp-validation-for="TotalStudents" class="text-danger"></span>

</div>

<div class="form-group">

<labelasp-for="Salary"></label>

<inputasp-for="Salary"type="text" class="form-control" />

<spanasp-validation-for="Salary" class="text-danger"></span>

</div>

<button type="submit" class="btn btn-primary">Submit</button></form>

<script src="/lib/jquery/dist/jquery.min.js"></script>

<script src="/lib/jquery-validation/dist/jquery.validate.min.js"></script>

<script src="/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js"></script>

该视图具有“Teacher”类型的模型,它为“Name, Skills, TotalStudents and Salary”创建输入字段,以便用户可以填写并提交。

单击“提交”按钮后,将调用HttpPost类型的“创建动作”,并创建新的教师记录。

请注意3个脚本文件,它们对视图中的输入字段进行客户端验证:

<script src="/lib/jquery/dist/jquery.min.js"></script>

<script src="/lib/jquery-validation/dist/jquery.validate.min.js"></script>

<script src="/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js"></script>

如果要通过EF核心执行记录插入,则需要查看本教程—在Entity Framework Core中插入记录

测试创建教师功能

运行该应用程序,然后在浏览器中转到“Create”视图的URL,它是—http://localhost:52730/Home/Create。 您将在浏览器中看到“创建教师”表单。

在不填写任何字段的情况下,按Submit按钮,您将看到jQuery Validation插件显示的验证错误。

教师表格上的jQuery验证

现在填写所有字段(如下图所示),然后单击提交按钮。

创建老师

教师记录将在数据库中创建,您将被重定向到当前为空的索引视图。

您可以确认记录已插入“教师”表中。 为此,转到“SQL Server Object Explorer”,然后右键单击“Teacher”表,然后选择“View Data”。

教师表将打开,您将在其中看到新的教师记录,请参见下图:

教师记录插入数据库

9.执行READ教师功能

现在,我们将创建READ教师功能。 因此,在主控制器中更改“索引操作”,以使所有教师返回“视图”,如下所示:

public IActionResult Index()

{

List<Teacher> teacherList = new List<Teacher>();

string connectionString = Configuration["ConnectionStrings:DefaultConnection"];

using (SqlConnection connection = new SqlConnection(connectionString))

{

//SqlDataReader

connection.Open();

string sql = "Select * From Teacher";SqlCommand command = new SqlCommand(sql, connection);

using (SqlDataReader dataReader = command.ExecuteReader())

{

while (dataReader.Read())

{

Teacher teacher = new Teacher();

teacher.Id = Convert.ToInt32(dataReader["Id"]);

teacher.Name = Convert.ToString(dataReader["Name"]);

teacher.Skills = Convert.ToString(dataReader["Skills"]);

teacher.TotalStudents = Convert.ToInt32(dataReader["TotalStudents"]);

teacher.Salary = Convert.ToDecimal(dataReader["Salary"]);

teacher.AddedOn = Convert.ToDateTime(dataReader["AddedOn"]);

teacherList.Add(teacher);

}

}

connection.Close();

}

return View(teacherList);

}

在此操作中,我使用SqlCommand's ExecuteReader()方法执行“Select * from Teacher”查询,以获取SqlDataReader对象。

然后,我使用SqlDataReader的.Read()方法遍历所有记录,并创建一个包含所有教师记录的教师列表对象。 在代码的最后,该对象作为模型返回到视图。

接下来,使用以下代码在“Views/Home/”文件夹中添加“Index”视图:

@model IEnumerable<Teacher>

@{

Layout = "_Layout";

var title = "READ Teacher";

ViewData["Title"] = title;

}

<h2>@title</h2>

<h3><aasp-action="Create" class="btn btn-sm btn-secondary">Create</a></h3>

<table class="table table-bordered table-sm table-striped">

<thead>

<tr>

<th>Id</th>

<th>Name</th>

<th>Skills</th>

<th>Total Students</th>

<th>Salary</th>

<th>Added On</th>

<th>Update</th>

<th>Delete</th>

</tr>

</thead>

<tbody>

@if (Model == null)

{

<tr>

<td colspan="7" class="text-center">No Model Data</td>

</tr>

}

else

{

@foreach (var p in Model)

{

<tr>

<td>@p.Id</td>

<td>@p.Name</td>

<td>@p.Skills</td>

<td>@p.TotalStudents</td>

<td>@string.Format(new System.Globalization.CultureInfo("en-US"), "{0:C2}", p.Salary)</td>

<td>@string.Format("{0:dddd, dd MMMM yyyy}", p.AddedOn)</td>

<td><aasp-action="Update"asp-route-id="@p.Id">Update</a></td>

<td>

<formasp-action="Delete" method="post"asp-route-id="@p.Id">

<button>Delete</button>

</form>

</td>

</tr>

}

}

</tbody>

</table>

注意,我还在表的thead和tbody元素中创建了Update和Delete功能的列:

<table class="table table-bordered table-sm table-striped">

<thead>

<tr>

<th>Id</th>

<th>Name</th>

<th>Skills</th>

<th>Total Students</th>

<th>Salary</th>

<th>Added On</th>

<th>Update</th>

<th>Delete</th>

</tr>

</thead>

<tbody>

else

{

@foreach (var p in Model)

{

<tr>

<td><aasp-action="Update"asp-route-id="@p.Id">Update</a></td>

<td>

<formasp-action="Delete" method="post"asp-route-id="@p.Id">

<button>Delete</button>

</form>

</td>

</tr>

}

}

</tbody>

</table>

我们将在下一部分中创建更新和删除功能。

您不能错过的相关教程-阅读Entity Framework Core中的记录

测试阅读老师功能

运行您的应用程序,您将看到“教师”的表记录显示在“索引视图”中。 如下图所示:

阅读教师视图

10.执行UPDATE Teacher功能

通过向本地控制器添加更新操作方法来完成更新功能。 添加到控制器的代码如下:

public IActionResult Update(int id)

{

string connectionString = Configuration["ConnectionStrings:DefaultConnection"];

Teacher teacher = new Teacher();

using (SqlConnection connection = new SqlConnection(connectionString))

{

string sql = $"Select * From Teacher Where Id='{id}'";

SqlCommand command = new SqlCommand(sql, connection);

connection.Open();

using (SqlDataReader dataReader = command.ExecuteReader())

{

while (dataReader.Read())

{

teacher.Id = Convert.ToInt32(dataReader["Id"]);

teacher.Name = Convert.ToString(dataReader["Name"]);

teacher.Skills = Convert.ToString(dataReader["Skills"]);

teacher.TotalStudents = Convert.ToInt32(dataReader["TotalStudents"]);

teacher.Salary = Convert.ToDecimal(dataReader["Salary"]);

teacher.AddedOn = Convert.ToDateTime(dataReader["AddedOn"]);

}

}

connection.Close();

}

return View(teacher);

}

[HttpPost]

[ActionName("Update")]

public IActionResult Update_Post(Teacher teacher)

{

string connectionString = Configuration["ConnectionStrings:DefaultConnection"];

using (SqlConnection connection = new SqlConnection(connectionString))

{

string sql = $"Update Teacher SET Name='{teacher.Name}', Skills='{teacher.Skills}', TotalStudents='{teacher.TotalStudents}', Salary='{teacher.Salary}' Where Id='{teacher.Id}'";

using (SqlCommand command = new SqlCommand(sql, connection))

{

connection.Open();

command.ExecuteNonQuery();

connection.Close();

}

}

return RedirectToAction("Index");

}

HttpGet版本的Update操作方法在其参数中使用教师的“id”,然后使用SqlCommand对象运行名为Select * From Teacher Where Id='{id}'SQL查询。 它获取教师记录的值,并将其返回到更新视图。

HttpPost版本的Update Action方法使用SqlCommand'对象来实际更新教师的记录。 要注意的重要事项是更新查询,它是:

string sql = $"Update Teacher SET Name='{teacher.Name}', Skills='{teacher.Skills}', TotalStudents='{teacher.TotalStudents}', Salary='{teacher.Salary}' Where Id='{teacher.Id}'";

接下来,使用以下代码在“ Views / Home /”文件夹中创建更新视图:

@model Teacher

@{

Layout = "_Layout";

var title = "UPDATE Teacher";

ViewData["Title"] = title;

}

<style>

.input-validation-error {

border-color: red;

}

</style>

<h2>@title</h2>

<divasp-validation-summary="ModelOnly" class="text-danger"></div>

<formclass="m-1 p-1" method="post">

<div class="form-group">

<labelasp-for="Id"></label>

<inputasp-for="Id"type="text" readonly class="form-control" />

</div

<div class="form-group">

<labelasp-for="Name"></label>

<inputasp-for="Name"type="text" class="form-control" />

<spanasp-validation-for="Name" class="text-danger"></span>

</div>

<div class="form-group">

<labelasp-for="Skills"></label>

<inputasp-for="Skills"type="text" class="form-control" />

<spanasp-validation-for="Skills" class="text-danger"></span>

</div>

<div class="form-group">

<labelasp-for="TotalStudents"></label>

<inputasp-for="TotalStudents"type="text" class="form-control" />

<spanasp-validation-for="TotalStudents" class="text-danger"></span>

</div>

<div class="form-group">

<labelasp-for="Salary"></label>

<inputasp-for="Salary"type="text" class="form-control"/>

<spanasp-validation-for="Salary" class="text-danger"></span>

</div>

<div class="form-group">

<labelasp-for="AddedOn"></label>

<inputasp-for="AddedOn"type="text" class="form-control"asp-format="{0:d}" />

</div>

<button type="submit" class="btn btn-primary">Submit</button>

</form>

<script src="/lib/jquery/dist/jquery.min.js"></script>

<script src="/lib/jquery-validation/dist/jquery.validate.min.js"></script><script src="/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js"></script>

该视图类似于我们之前创建的索引视图。 我已将“ Id”字段设为只读,以便用户无法更改它。

测试Update Teacher功能

运行您的应用程序,然后单击“更新”链接以获取第一个教师记录,请参见下图:

点击更新链接

该记录将打开以进行更新。 将名称更改为“Bill Gates”,并将薪水更改为“100000000”。 最后单击提交按钮,如下图所示:

更新记录

记录将被更新,您将被重定向到索引视图,在其中您可以看到更新的记录字段,如下图所示:

记录已更新

11.执行DELETE教师功能

在Home Controller中创建Delete Action方法,其代码如下:

HttpPost]

public IActionResult Delete(int id)

{

string connectionString = Configuration["ConnectionStrings:DefaultConnection"]

using (SqlConnection connection = new SqlConnection(connectionString))

{

string sql = $"Delete From Teacher Where Id='{id}'";

using (SqlCommand command = new SqlCommand(sql, connection))

{

connection.Open();

try

{

command.ExecuteNonQuery();

}

catch (SqlException ex)

{

ViewBag.Result = "Operation got error:" + ex.Message;

}

connection.Close();

}

}

return RedirectToAction("Index");

}

此方法在其参数中获取教师记录的ID,然后执行Delete SQL查询:

string sql = $"Delete From Teacher Where Id='{id}'";

测试删除教师功能

运行您的应用程序,然后针对任何记录单击给出的“删除”链接。 检查以下显示记录删除过程的图像:

删除连结

记录已删除

从GitHub下载此应用程序的完整源代码

________________________________________________________

结论

这将使用在 Core中完成本CRUD操作教程。 希望您喜欢阅读本文并了解代码的工作方式。 如果您有任何疑问,请浏览所有可从此处下载的代码。

跟着我

我希望您能在本教程中找到一些新知识来增加您的Web开发知识。

如果是这样,那就别忘了鼓掌几次以示自己的喜好。 它不仅会给我的坏脸带来微笑,还会激励我为Web开发人员撰写越来越多的好文章。

与往常一样,每当我在Medium上发布新文章时,请关注我以得到通知。

我还在HACKERNOON上发布了另一篇教程,您也希望看到它-7个常见的Web开发问题,从初学者到专家每个开发人员都应该知道[具有多种解决方案]

翻译自: /asp-net-core-learn-crud-operations-in-ado-net-from-zero-to-hero-a0109ed2f8a4

vue.js crud

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。