wap网站适配,小米应用商店下载,手机排行榜2022年,宁波建设规划网说明#xff1a;本demo使用sqlserver数据库#xff0c;dapper orm框架 完成一张学生信息表的增删改查#xff0c;前端部分使用的是Razor视图#xff0c; Linq分页 HtmlHelper。#xff08;代码随便写的#xff0c;具体可以自己优化#xff09; //实现效果如下#xff0…说明本demo使用sqlserver数据库dapper orm框架 完成一张学生信息表的增删改查前端部分使用的是Razor视图 Linq分页 HtmlHelper。代码随便写的具体可以自己优化 //实现效果如下首页 //新增页 //修改页 //删除 1.使用visual stuido 2022创建 asp.net core mvc项目选择如下图 2.安装dapper nuget包选择第一个 3.使用sqlserver创建数据库和数据表
USE [stu]
GO/****** Object: Table [dbo].[StuInfo] Script Date: 2023/9/28 18:17:23 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[StuInfo]([Id] [int] NULL,[Name] [nchar](10) NULL,[Sex] [nchar](10) NULL,[Age] [int] NULL,[BirthDate] [date] NULL
) ON [PRIMARY]
GO4.在项目appsetting中配置数据库连接字符串填写自己的用户名和密码和数据库信息
{Logging: {LogLevel: {Default: Information,Microsoft.AspNetCore: Warning}},AllowedHosts: *,ConnectionStrings: {connectionString: Data Source.;Initial Catalogstu;User IDsa;Passwordpe123;TrustServerCertificatetrue}
}
5.创建数据学生信息实体类
namespace mvccore.dataModel
{public class StuInfo{public int Id { get; set; }public string? Name { get; set; }public string? Sex { get; set; }public int Age { get; set; }public DateTime BirthDate { get; set; }}
}6.创建学生信息dto类
namespace mvccore.ViewModel
{public class stuViewModel{public int Id { get; set; }public string? Name { get; set; }public string? Sex { get; set; }public int Age { get; set; }}
}7.创建stu的接口和实现类service(使用ioc注入面向接口编程) 创建接口和实现类后需要在program中注入服务
using mvccore.dataModel;
using mvccore.ViewModel;namespace mvccore.service
{public interface Istuservice{//查询ListstuViewModel stuls();void saveT(T stu);void editT(T t);//删除void delete(int Id);//根据Id查询stuViewModel GetById(int Id);}
}using mvccore.ViewModel;
using Dapper;
using Microsoft.Data.SqlClient;
using System.Collections.Generic;
using System.Collections;
using mvccore.dataModel;namespace mvccore.service
{public class stuservice : Istuservice{private readonly IConfiguration _configuration;public string connstring { get; set; }public stuservice(IConfiguration configuration){_configuration configuration;connstring _configuration.GetConnectionString(connectionString);}//删除public void delete(int Id){using (var connection new SqlConnection(connstring)){string sql delete from StuInfo where IdId;connection.Execute(sql, new { Id });}}//显示所有列表public ListstuViewModel stuls(){using (var connection new SqlConnection(connstring)){string sql select * from StuInfo;var list connection.QuerystuViewModel(sql).ToList();return list;}}//新增public void saveT(T stu1){var stu stu1 as stuViewModel;using (var connection new SqlConnection(connstring)){string sql insert into StuInfo(Id,Name,Sex,Age) values(Id,Name,Sex,Age);;DynamicParameters parameters new DynamicParameters();parameters.Add(Id, 20);parameters.Add(Name, stu.Name);parameters.Add(Sex, stu.Sex);parameters.Add(Age, stu.Age);connection.Execute(sql, parameters);}}//编辑public void editT(T t){var stu t as stuViewModel;string sql update StuInfo set NameName,AgeAge WHERE IdId;using (var connection new SqlConnection(connstring)){connection.Execute(sql, new { Name stu?.Name, Age stu?.Age, Id stu?.Id });}}//根据Id查询public stuViewModel GetById(int Id){string sql select * from StuInfo where IdId;using (var connection new SqlConnection(connstring)){var list connection.QuerystuViewModel(sql, new { Id Id }).FirstOrDefault();return list;}}}
}8.创建分页类
namespace WebApplication4
{public class PaginatedListT : ListT{public int PageIndex { get; private set; }public int TotalPages { get; private set; }public PaginatedList(ListT items, int count, int pageIndex, int pageSize){PageIndex pageIndex;TotalPages (int)Math.Ceiling(count / (double)pageSize);this.AddRange(items);}public bool HasPreviousPage PageIndex 1;public bool HasNextPage PageIndex TotalPages;public static PaginatedListT Create(IQueryableT source, int pageIndex, int pageSize){var count source.Count();var items source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();return new PaginatedListT(items, count, pageIndex, pageSize);}}
}-------------------------------至此所有的业务代码就准备好了接下来下控制器和视图里面的代码-------------------------------------------- 9.创建stu的控制器 RedirectToAction(“StuInfoList”)是指定跳转到当前控制器下的其他视图这里我们跳转到首页
using Microsoft.AspNetCore.Mvc;
using mvccore.service;
using mvccore.ViewModel;
using WebApplication4;namespace mvccore.Controllers
{public class StuController : Controller{private readonly Istuservice _stuservice;public StuController(Istuservice stuservice){_stuservice stuservice;}//学生列表视图public IActionResult StuInfoList(int? pageNumber 1){var list _stuservice.stuls().ToList();int pageSize 3;return View(PaginatedListstuViewModel.Create(list.AsQueryable(), pageNumber ?? 1, pageSize));}//保存视图public IActionResult Save(){return View();}//保存方法public IActionResult Save2(stuViewModel stu){_stuservice.savestuViewModel(stu);return RedirectToAction(StuInfoList);}//删除方法正式项目我们一般使用逻辑删除不会真的把数据删掉public IActionResult delete(int Id){_stuservice?.delete(Id);return RedirectToAction(StuInfoList);}//编辑回显public IActionResult edit(int Id){return View(_stuservice.GetById(Id));}//编辑方法public IActionResult edit2(stuViewModel stu){_stuservice?.edit(stu);return RedirectToAction(StuInfoList);}}
}10.添加首页的视图StuInfoList.cshtml model PaginatedListmvccore.ViewModel.stuViewModel
Html.ActionLink(新增,Save,Stu)
table classtabletrthName/ththAge/ththSex/thtd操作/td/trforeach (var item in Model){trtditem.Name/tdtditem.Age/tdtditem.Sex/tdtd Html.ActionLink(编辑,edit,Stu,new{item.Id}) Html.ActionLink(删除,delete,Stu,new{item.Id},new { onclickreturn confirm(是否删除) })/td/tr}/table
{var prevDisabled !Model.HasPreviousPage ? disabled : ;var nextDisabled !Model.HasNextPage ? disabled : ;
}a asp-actionStuInfoListasp-route-pageNumber(Model.PageIndex - 1)classbtn btn-default prevDisabledPrevious
/a
a asp-actionStuInfoListasp-route-pageNumber(Model.PageIndex 1)classbtn btn-default nextDisabledNext
/a11.添加新增视图Save.cshtml
form action/stu/Save2 methodpost
姓名input typetext nameName /
年龄input typetext nameAge/
性别:input typetext nameSex/
input typesubmit value保存/
/form12.添加编辑视图edit.cshtml)可以和新增公用一个视图
using mvccore.ViewModel
model stuViewModel;
form action/stu/edit2 methodpost姓名input typetext nameName valueModel.Name /年龄input typetext nameAge valueModel.Age /input typehidden nameId valueModel.Id/input typesubmit value保存 /
/form13.如果在解决方案中有多个项目的话需要把当前项目设置为启动项目 14.修改项目默认起始页默认路由是 /Home/index(根据自己的需要更改) 15.End 至此项目demo就完成了下面是项目的结构图 代码随便写的主要是快速入门。这边可以去微软官方文档上学习有完整的代码实例(网址如下) https://learn.microsoft.com/zh-cn/aspnet/core/tutorials/first-mvc-app/start-mvc?viewaspnetcore-7.0tabsvisual-studio