当前位置: 代码迷 >> 综合 >> C#/Sharp NET Core(MVC)使用 Linq操作数据库
  详细解决方案

C#/Sharp NET Core(MVC)使用 Linq操作数据库

热度:78   发布时间:2023-11-28 02:45:14.0

直接举例:

            后台代码
//这是我某个控制器中的查询语句,主要是在数据库中查询出指定的“图片地址”
var Images1 = (from m in _context.CarImage where m.图片名称=="21" select m.图片 
地址).Single();string Images2 = Images1.ToString();ViewData["Images2"]=Images1.ToString();前台代码<h2>————热门车型————"@ViewData["Images2"]"</h2><h3><span>超前科技,智慧相伴</span></h3>

 然后这是测试效果,OK

 实战:

查询:用户ID,查询用户余额

int getUserId = (int)(from m in _context.Login where m.UserName == UserName select m.LoginId).Single();//查找用户Id
int getMoney = (int)(from x in _context.银行卡 where x.用户Id == getUserId select x.余额).Min()-10000;//扣除金额

插入数据:

当用户余额大于0时,执行数据库插入数据操作。

if (getMoney >=0){_context.SalesList.AddRange(new SalesList(){UserId = getUserId,CarsId = 1,StaffId = 1,});//用户购买订单数据写入完成_context.银行卡.AddRange(new 银行卡(){姓名 = UserName,银行卡号 = Card,余额 = getMoney,用户Id = getUserId,});_context.SaveChanges();}

修改数据:

            var getcarnum = from a in _context.Car where a.CarId == 2 select a;foreach (var i_ in getcarnum){i_.剩余数量=i_.剩余数量-1;}//修改操作,秘传=》

未完待续......................

相关基础知识:

 大部分的网页或者软件对于数据的操作都离不开数据库,对于数据的查询,C#中可以使用Linq来进行数据的查询。
Linq语句有很多种写法,但都脱离不了必须的关键字,例如:form,select,where等等
下面这个例子是对于数据库的一个简单的单表查询

关键字from

from表明数据从哪里来。
from 后面跟着的是一个自命名,这个自命名是一个范围变量。例如例子中的tbAcademe,就是范围变量,这个可以随便命名,但在命名的时候最好是命名一些具有实制意义的名字,方便以后的维护。最好不要用中文!

关键字in

in 表示在哪里查询,英文翻译就是“在…里面”,这个就没什么好说明的
in 后面跟着的是数据源,就是数据的源头,就比如一条河流,河流再长也需要一个源头才能形成一条河流。例子中的 myModel.SQ_Academe,myModel是通过实例化数据库得来的一个自命名, 
SQ_Academe 是数据库里面的一个数据表,

关键字select

selsct 表明查询数据。对于计算机来说,它并不知道你写的这些代码有什么用,这时候就需要一个关键字select 来提示它,需要查询数据,select之后就是需要查询的表,前面范围变量命名是什么,select后面就写什么,指定查询的地方。

关键字 ToList

括号外的ToList(),指定查询出来的数据以一个表格的形式返回到dbTab

关键字 Count

Count 指定查询数据并统计整个数据表有多少条数据,然后把统计出来的数据返回到dbTab

关键字 Single

Single 指定查询单条数据,这个一般配合条件语句使用,然后把找到的单条数据返回到dbTab

上面的例子中多了一个条件语句,而where是关键字

关键字 where
where 是条件语句,表明查询数据的时候根据where后面的条件去查询

上面的例子中表明查询数据要根据视图传到控制器的ID去查询
AcademeID,是控制器的方法接收视图传来的参数,以上面这个例子来说就是控制器接收页面传到控制器的ID。

因为ID是整数,所以要用int类型来接收

关键字 orderby
orderby 表明查询出来的数据要进行排序

进行排序就要指明是要根据升序排序还是降序排序,所以orderby后面是根据什么条件去排序,条件后面就是一个关键字,这个关键字指明是升序还是降序
上面的例子是根据数据表的ID去排序并且是降序排序

关键字ascending descending
ascending 指明排序是按照升序排序
descending 指明排序是按照降序排序

以上这是这位老哥的

(26条消息) C# linq语句解析 数据查询_3的奇迹的博客-CSDN博客_c#linq语句

  相关解决方案