关于批量更新的语句

问题描述

UserArray="1,2,4,2,3,4,4";vart1=db.tbdase.Where(o=>UserArray.Contains(o.ID.ToString())).ToList();foreach(vartint1){t.figures=t.figures+3;//加3分}db.SaveChanges();要求给以上ID号加3分,但以上语句仅给相同的ID号如2和4加一次请帮忙怎么能出现一次加一次。谢谢。

解决方案

解决方案二:
这个需要你调试一下,看看t1得到了几条数据
解决方案三:
引用1楼q107770540的回复:

这个需要你调试一下,看看t1得到了几条数据

谢谢,这个已经调试过了,问题是Where(o=>UserArray.Contains(o.ID.ToString()))这句只能取出不同的ID,无法重复,所以只加一次。我想问一下,还有什么办法能重复增加。
解决方案四:
引用1楼q107770540的回复:

这个需要你调试一下,看看t1得到了几条数据

t1=1,2,4,3
解决方案五:
有高手有办法吗
解决方案六:
UserArray="1,2,4,2,3,4,4";foreach(varuserinUserArray){vart1=db.tbdase.Where(o=>o.ID.ToString()==user).FirstOrDefault();t1.figures+=3;db.SaveChanges();}
解决方案七:
UserArray="1,2,4,2,3,4,4";vart1=db.tbdase.Where(o=>UserArray.Distinct().Contains(o.ID.ToString())).Distinct();foreach(vartint1)t.figures=t.figures+3;//加3分db.SaveChanges();

解决方案八:
有没有试过用分组做啊varquery=db.tbdase.GroupBy(a=>a.ID).Select(a=>new{key=a.key,count=a.Count()});

然后匹配key,计算的时候+3*count

时间: 2024-10-27 09:24:08

关于批量更新的语句的相关文章

使用 DataAdapter 执行批量更新

执行    摘自MSDN: 在以前版本的 ADO.NET 中,使用 DataSet 中的更改来更新数据库时,DataAdapter 的 Update 方法每次更新数据库的一行.因为该方法循环访问指定 DataTable 中的行,所以,会检查每个 DataRow,确定是否已修改.如果该行已修改,将根据该行的 RowState 属性值调用相应的 UpdateCommand.InsertCommand 或 DeleteCommand.每一次行更新都涉及网络与数据库之间的双向数据传输. 在 ADO.NE

在Hibernate中处理批量更新和批量删除

批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据.以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: tx = session.beginTransaction(); Iterator customers=session.find("from Customer c where c.age>0").iterator(); while(customers.hasNext()){ Customer c

DataAdapter执行批量更新的实例代码

这篇文章介绍了DataAdapter执行批量更新的实例代码,有需要的朋友可以参考一下,希望对你有所帮助   在以前版本的 ADO.NET 中,使用 DataSet 中的更改来更新数据库时,DataAdapter 的 Update 方法每次更新数据库的一行.因为该方法循环访问指定 DataTable 中的行,所以,会检查每个 DataRow,确定是否已修改.如果该行已修改,将根据该行的 RowState 属性值调用相应的 UpdateCommand.InsertCommand 或 DeleteCo

Linq To SQL 批量更新方法汇总

方法一.官方例子 地球人都知道的,也是不少 Linq To SQL 反对者认为效率低下的一种方法. NorthwindDataContext db = new NorthwindDataContext();var customers = db.Customers.Where(c => c.CustomerID.StartsWith("BL"));foreach (var customer in customers){ customer.Address = "Guangz

挑战:java 批量查询SQL语句

问题描述 现有一批SQL语句集,此集合中的SQL语句格式不固定,但都执行的是select 查询. 要求:和数据库只建立一次连接,多次执行,每条SQL语句执行完之后都能有一个返回值.在批量操作数据方面,java提供了批量更新,但是更新要求SQL语句格式是固定的,变的只是参数.此问题,是一个挑战!欢迎各位献策! 解决方案 给你提供一个dao模板方法用Object...args语法,但只限在返回一列数据先用Object...args写一个通用的dao方法:public static List<Obje

mysql 有就插入没有就更新 on DUPLICATE key update批量更新

on DUPLICATE key update批量更新 mysql有个批量更新的方法,mssql则无此命令用法,mysql的这个方法可以用来批量更新,更为强大的是:如果参数已存在则更新,如果数据库里没有这个参数就插入新的. 举例 insert into xinhuazidian (a, b, c) VALUES ('aaa','bbb','lao8.org'),  ('aaa2','bbb2','m.lao8.org') on DUPLICATE key update b=VALUES(b),

ibatis-sql 批量更新 一个(还有多个选项的)字段

问题描述 sql 批量更新 一个(还有多个选项的)字段 有2张表 一个学生表,一个状态表 学生表里面有个字段是学生奖项(1,2,3) 对应的奖项名称是状态表里面的内容. !!! 主要内容: 是通过学生的id(批量)修改奖项(awards)这个字段,每个青年的奖项可能不同(如:A学生有:2,3.B学生有:3,4).奖项也是含有多个值的(如1,2,3,4,5..) 现在要去掉其中一个奖项,或者增加一个奖项. sql语句要如何写?用ibatis如何操作. 解决方案 下面是对SQL Server的,如果

sql server-SQL Server怎么批量更新提高效率?

问题描述 SQL Server怎么批量更新提高效率? C# 将ID=1,ID=2,ID=3······ID=10这十条数据的NAME字段都改成ABC 用foreach操作很耗时间,有没有什么批量的方法提高效率? 解决方案 sql语句优化一下,where id between 或者 in(1,10) 解决方案二: SQL SERVER的批量插入与批量更新Sql Server根据记录集批量更新数据库如何update sql 批量更新(sql server) 解决方案三: 楼上说的对,使用betwee

LINQ To SQL在N层应用程序中的CUD操作、批量删除、批量更新

原文:LINQ To SQL在N层应用程序中的CUD操作.批量删除.批量更新 0. 说明     Linq to Sql,以下简称L2S.    以下文中所指的两层和三层结构,分别如下图所示:       准确的说,这里的分层并不是特别明确:(1) 生成的DataContext(Linq t0 SQL Runtime)和Entity是放在一个文件中的,物理上不能切割开来:上图只是展示逻辑上的结构.(2) 拿上图右边的三层结构来说,鉴于第(1)点,UI层就可以跨越BusinessLogic层,直接