c#按指定长度分解数组
在操作数据库时,我们需要注意一点,就是in查询的参数不能超过1000个,否则会报错,所以我们在进行in查询的时候需要对参数数量进行控制:
用于分解数组的扩展方法:
/// <summary>
/// 根据数量对数组进行分组(in查询不能超过1000个条目)
/// </summary>
/// <param name="list"></param>
/// <param name="size">数量</param>
private List<List<long>> GroupListBySize(List<long> list,int size)
{
List<List<long>> listArr = new List<List<long>>();
int arrSize = list.Count() % size == ? list.Count() / size : list.Count() / size + ;
for (int i = ; i < arrSize; i++)
{
List<long> sub = new List<long>();
for (int j = i * size; j <= size * (i + ) - ; j++)
{
if (j <= list.Count() - )
{
sub.Add(list[j]);
}
}
listArr.Add(sub);
}
return listArr;
}
如:数组长度为2500,size(按照多少数量进行分割),这里我们传1000,则会被分解为三个数组,长度分别为,1000,1000,500;
业务层的方法接口:
/// <summary>
/// 根据id批量修改状态
/// </summary>
/// <returns></returns>
public bool ButchChangeState(List<long> ids, int state)
{
if (ids.Count > )
{
if (ids.Count()>)
{
var lists = GroupListBySize(ids,);
foreach (var list in lists)
{
dal.ButchChangeState(list,state);
}
}
else
{
dal.ButchChangeState(ids, state);
}
return true;
}
else { return false; }
}
数据库交互:
/// <summary>
/// 修改状态////0:已执行,1:执行中,2:执行失败,3:待下发
/// </summary>
/// <param name="ids"></param>
/// <param name="state"></param>
/// <returns></returns>
public bool ButchChangeState(List<long> ids, int state)
{ if (ids.Count > )
{
string idStr = string.Join(",", ids);
//List数组的每个元素加上引号,如("12","32","5456","876455")
string idString = string.Format("'{0}'", idStr.Replace(",", "','"));
string sql = $" update COMMAND_ACCESSLOG set WORKSTATE = {state},STRING1=:DOWNSENDTIME where COMMANDID in ( {idString} )";
OracleParameter[] parameters =
{
new OracleParameter(":DOWNSENDTIME",OracleDbType.Varchar2,)
};
parameters[].Value = DateTime.Now.ToString();
var row = DbHelperOra.ExecuteSql(sql,parameters);
return row > ? true : false;
}
else { return false; } }
c#按指定长度分解数组的更多相关文章
- c++ 在指定长度的数组或者容器中,统计元素出现的次数(count)
#include <iostream> // cout #include <algorithm> // count #include <vector> // vec ...
- Java-生成指定长度验证码的一种简单思路
前言:以前做过的一个项目,刚开的时候始验证码是在前端生成前端验证的,后来觉得不靠谱,另外就是找回密码的功能也需要发送邮件和短信的验证码,所以,验证码就必须在后端生成并且保存到应用会话中才行了!所以, ...
- C#利用substring按指定长度分割字符串
这几天学习分析声音的波形数据,接收到的是十六进制的数据,需要将数据转换成十进制再绘图,这个过程涉及到字符串的分割,正好可以促进自己对C#相关知识的学习.说到分割字符串,我首先想到的是Split,但根据 ...
- C#按指定长度分割字符串
C#按指定长度分割字符串 这几天学习分析声音的波形数据,接收到的是十六进制的数据,需要将数据转换成十进制再绘图,这个过程涉及到字符串的分割,正好可以促进自己对C#相关知识的学习.说到分割字符串,我 ...
- 随机生成指定长度字符字符串(C语言实现)
相关函数 srand(), rand()头文件#include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MA ...
- 小记:目标数组的长度不够。请检查 destIndex 和长度以及数组的下限。
异常:System.ArgumentException: 目标数组的长度不够.请检查 destIndex 和长度以及数组的下限.(不好意思忘记截图了) 发生异常的代码如下: var list = ne ...
- js指定分隔符连接数组元素join()
指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...
- .NET截取指定长度汉字超出部分以"..."代替
/// <summary> /// 将指定字符串按指定长度进行剪切, /// </summary> /// <param name= "oldStr " ...
- php随机生成指定长度的字符串 可以固定数字 字母 混合
php 生成随机字符串 可以指定是纯数字 还是纯字母 或者混合的. 可以指定长度的. function rand_zifu($what,$number){ $string=''; for($i = 1 ...
随机推荐
- “GIS DICTIONARY A-Z” 查询页面开发(2)——INSERT INTO数据库
今日工作:数据库连接.数据写入 一.数据库连接:使用了pymysql库 from G2_dataClean import defList import pymysql db = pymysql.con ...
- 国内不fq安装K8S三: 使用helm安装kubernet-dashboard
目录 3 使用helm安装kubernet-dashboard 3.1 Helm的安装 3.2 使用Helm部署Nginx Ingress 3.3 使用Helm部署dashboard 3.4 使用He ...
- Google Chrome 解决 “您的连接不是私密连接” 和被毒霸劫持
一.解决 “您的连接不是私密连接” 前一段时间,Chrome 突然显示出了“您的连接不是私密连接”,这下可难受了,大部分的网站打开都有问题. 找了各种方法,各种设置都是不行. 一.暴力.费力的方法直接 ...
- robotframework-selenium2library各个版本
https://github.com/robotframework/Selenium2Library/downloads
- centos安装安全狗提示Need system command 'locate' to install safedog for linux的解决方法
今天为客户的centos服务器安装安全狗时提示Need system command 'locate' to install safedog for linux.Installation aborte ...
- crystalreport使用方法
使用: 打开CrystalReport官网下载页 目前最新版本为13.0.4 选择“SAP Crystal Reports, version for Visual Studio 2010 - Stan ...
- CNN是怎样一步步工作的?
非常形象详细的博客:链接1 链接2 为了完成我们的卷积,我们不断地重复着上述过程,将feature和图中每一块进行卷积操作.最后通过每一个feature的卷积操作,我们会得到一个新的二维数组.这也可以 ...
- 小学四则运算口算练习app---No.2
经过昨天的了解,虽然还是很懵,总要下手摸到鼠标来写第一个页面! 这是一开始设置出体数目和时间的页面,使用者根据提示进行相关设置即可! 代码如下: <?xml version="1.0& ...
- matlab-层次分析法
层次分析法(AHP)是把问题条理化.层次化,构造出一个有层次的结构模型的方法. 比如要选择旅游地,有3个选择方案,苏杭.北戴河和桂林.选择过程需要考虑多个因素,比如景色.费用.居住.饮食和旅途. 1. ...
- js 浮点数计算精度不准确问题
或许很多人都遇到过,js 对小数的加.减.乘.除时经常得到一些奇怪的结果! 比如 :0.1 + 0.2 = 0.3 ? 这么一个简单的计算,当你用js 计算时会发现结果是:0.30000000000 ...