【c#】前后端分离练习小项目学习笔记----纯干货
创始人
2024-01-22 16:41:58

c#实现前端页面CRUD

    • 结果图
    • 涉及到的技术
    • 设计流程
    • 代码展示
    • 总结

结果图

在这里插入图片描述
在这里插入图片描述

涉及到的技术

1、HttpClient请求网络
2、webapi接口用法
3、sqlsugar数据库使用
4、Json序列化、反序列化

设计流程

刚开始做这个小项目,很懵。按照平常中项目的写法,就是先配置好数据库,服务层,控制层,再到前端调用,但是实际操作还是很多问题,下面是做完这个小项目学习总结的一个流程

一、后端(主要是操作数据库来为前端提供前端请求的数据)
1、在类库中创建公共DTO类(MODEL),SERVER层中也需要创建Model,但是为什么建设两个,因为,在SERVER层中的Model前端访问不了,其次,SERVER层需要操作数据库,会给Model层加一些特性标记,仅限于SERVER层去使用,如果只单独建一个公共类库中DTO(MODEL),那么,公共类库中需要引用SQLSUGAR包,不合规范
2、配置数据库DbContext
3、service层编写业务代码,注入数据库依赖DB
4、控制层添加接口特性、注入Iservice依赖service
5、startup文件中服务注入,凡是构造器中注入的服务都需要注入到startup文件中。注入服务的方式有三种:
builder.Services.AddSingleton();
builder.Services.AddScoped();
builder.Services.AddTransient();
6、调试接口
二、前端
1、配置httpclient服务,目的是获取网络(指定接口地址)的数据,注意凡是涉及到传输数据格式不为application/text格式,都需要在请求的头文件中修改请求头类型,content-type
2、设计前端页面,调用httpclient服务去虎丘数据
三、注意
1、Oracle数据库连接字符串
2、实体类字段类型要和数据库表字段类型保持一致
3、前端Httpclient请求的地址和调用接口返回的地址一致
4、前端解析返回的结果类型必须和后端返回的类型一致
5、每次List在循环中给T对象赋值时,需要将new T放在循环中,原理和创建行一致
6、当使用sqlsugar去修改数据时,主键数据不能被修改,只能修改非主键数据。
7、sqlsugar主键自增属性OracleSequenceName=“sequence表”,sequence表必须是默认创建的额,否则会冲突

代码展示

前端请求接口代码

public class WebClient{public HttpClient client;public string baseurl;public string token;public WebClient(){ client=new HttpClient();client.Timeout =new TimeSpan(0,0,5,0);baseurl = "https://localhost:7212/EMPInfo";client.BaseAddress= new Uri(baseurl);}/// /// 验证登录/// /// /// /// public void LoginVerify(string Userid,string Pwd){}/// /// get请求/// public string GetInfo(){using (client = new HttpClient()){ HttpResponseMessage httpResponseMessage=new HttpResponseMessage();//获取请求结果httpResponseMessage = client.GetAsync(baseurl+ "/GetEmpInfo").Result;if (httpResponseMessage != null){//将请求的结果给到return httpResponseMessage.Content.ReadAsStringAsync().Result;}return null;}}/// /// post保存/// public string  SaveData(List config){using (client=new HttpClient()){HttpResponseMessage responseMessage = new HttpResponseMessage();var json = JsonConvert.SerializeObject(config);//发送或解析JSON数据需要加头文件类型描述HttpContent content = new StringContent(json,Encoding.UTF8);content.Headers.ContentType = new MediaTypeHeaderValue("application/json");responseMessage = client.PostAsync(baseurl+ "/UpdateEmpInfo", content).Result;return responseMessage.Content.ReadAsStringAsync().Result;}}}

后端配置DBCONTEXT

public DbContext(){Db = new SqlSugarClient(new ConnectionConfig{ConnectionString = "Data Source=(DESCRIPTION=" + "(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.1.7)(PORT=1521))" + "(CONNECT_DATA= (SERVER = DEDICATED)(SERVICE_NAME=ORCL)));" + "User Id=scott;Password=tiger;",DbType = DbType.Oracle,InitKeyType = InitKeyType.Attribute,//从特性读取主键和自增列信息IsAutoCloseConnection = true//开启自动释放模式和EF原理一样});//sqlsugar创建实体类//client.CodeFirst.InitTables(typeof(K_emp));//client.Aop.OnLogExecuting(SQL,Parameter)=>{ //};}

其余的就是业务代码,没啥区别

总结

本次还用到了一个新鲜的写法

if (dataGridView1.DataSource is List config){//这样就可以直接拿到K_EMP对象属性,直接操作config.Capacity = "";}最后返回K_emp对象Config。

本次还是收获蛮大,很开心。

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
ps局部放大 放大某个部位的图... 软件类学习建议:边看边练习,可以先收藏后学习。一、使用Ctrl快捷键放大:Ctrl + +缩小:Ct...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
衡水一中在哪 兰州分校衡水一中 新甘肃客户端兰州6月6日讯(新甘肃·甘肃日报记者 曹立萍)今天上午,由中铁二十局市政公司承建的河北衡...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...