问题:

//oracle数据库报错
delete from DD_ORDER_DETAIL where ORDERID=in(0,1,2,3,4,5,6,7.....1001);

c#写了一个方法解决

/// <summary>
/// 拼接sql
/// </summary>
/// <param name="str">主sql语句</param>
/// <param name="ids">要拼接的in里面的参数</param>
/// <param name="count">每次执行条数</param>
/// <returns></returns>
public static string get(string str, string[] ids)
{ if (ids.Length > )
{
StringBuilder sb = new StringBuilder();
for (int i = ; i < ids.Length; i++)
{
if ((i % ) == && i > )
{
sb.Remove(sb.Length - , );
sb.Append(") or " + str + "in(" + ids[i] + ",");
}
else
{
sb.Append(ids[i] + ",");
}
}
sb.Remove(sb.Length - , ); return str + "in(" + sb.ToString() + ")";
}
return "";
}

调用如下

 static void Main(string[] args)
{
string str = "delete from DD_ORDER_DETAIL where ORDERID =";
string[] s = { };
List<string> list = new List<string>();
for (int i = ; i < ; i++)
{
list.Add(i.ToString());
}
s = list.ToArray(); ;
Console.WriteLine(s.Length);
string ss = get(str, s);
Console.ReadKey();
}

效果如下

第二种:

//ids要插入in中的数据,sqlstr原始sql,num多少条执行一次
public static string[] CreateSQL(string[] ids, string sqlStr, int num)
{
string[] sqls = null;
StringBuilder sb = new StringBuilder();
sb.Append(sqlStr);
List<string> lt = new List<string>();
for (int i = ; i < ids.Length; i++)
{
if (i != && i % num == )
{
string s1 = sb.ToString();
s1 = s1.Remove(s1.Length - ) + ")";
lt.Add(s1);
sb.Length = ;
sb.Append(sqlStr);
sb.Append(ids[i] + ",");
if (i == ids.Length - )
{
string s2 = sb.ToString();
s2 = s2.Remove(s2.Length - ) + ")";
lt.Add(s2);
}
}
else
{
sb.Append(ids[i] + ",");
if (i == ids.Length - )
{
string s = sb.ToString();
s = s.Remove(s.Length - ) + ")";
lt.Add(s);
}
}
}
sqls = lt.ToArray();
return sqls;
}

调用

 static void Main(string[] args)
{
List<string> list = new List<string>();
for (int i = ; i < ; i++)
{
list.Add(i.ToString());
}
string[] sqls = CreateSQL(list.ToArray(), "select * from tb_spkc where id in(", );
Console.ReadKey();
}

效果

c#解决数据库用in的时候大于1000报错问题的更多相关文章

  1. 解决Windows下运行php Composer出现SSL报错的问题

    解决Windows下运行php Composer出现SSL报错的问题 2015-01-14 20:05   在windows下运行composer却出现SSL报错: E:\www>php -f  ...

  2. 解决Homestead yarn , npm run dev, 命令报错问题!

    解决Homestead yarn , npm run dev, 命令报错问题! 2018年06月01日 11:50:51 偶尔发发颠 阅读数:1654    版权声明:本文为博主原创,未经博主同意,不 ...

  3. 如何解决spring boot 项目导入依赖后代码报错问题

    如何解决spring boot 项目导入依赖后代码报错问题 2020-08-15  14:17:18 代码截图如图所示(由于本人问题已经解决,没来得及截图,所以在网上找了一张图片)

  4. Sqlite 数据库出现database disk image is malformed报错的解决方法

    软件用的是Sqlite数据库,昨天还好好的,今天开机登录软件报错:database disk image is malformed 用Sqlite Expert Personal 重建索引,发现其中一 ...

  5. mysql数据库表字段使用DESC等关键字报错及解决方法

    <!-- desc是MySQL数据库的关键字,作为字段名直接使用会报错 --><sql id="Base_Column"> id,mol,ip,port,n ...

  6. 解决 U盘安装Windows Server 2012 R2 报错 Windows 无法打开所需的文件 Sources\install.wim

    报错原因: 使用UltraISO等软件刻录镜像时默认使用FAT32文件系统,该系统不支持大于4G的文件, 而Server 2012 R2的安装文件install.wim为5.12G,固安装失败. 解决 ...

  7. 安装完oracle11g_2x64位数据库后使用PL Developer链接oracle报错“请确认是否安装了32位oracle和TNS错误”解决方案

    解决使用PL Developer登录oracle报错没有配置TNS错误.首先安装好oracle11g数据库,安装PL developer32位 1,下载“instantclient-basic-win ...

  8. 解决Mysql搭建成功后执行sql语句报错以及区分大小写问题

    刚搭建完mysql 8.0以后会: 一.表区分大小写, 二.执行正确的sql语句成功且会报:[Err] 1055 - Expression #1 of ORDER BY clause is not i ...

  9. 解决小米手机USB安装apk时AS报错:INSTALL_FAILED_USER_RESTRICTED

    今天,直接用AS在小米手机上运行安装的时候总是报错:INSTALL_FAILED_USER_RESTRICTED,于是乎,通过以下方式解决: 在开发者选项将USB安装打开,然后,哈,解决了.记录一下.

随机推荐

  1. linux下.run文件的安装与卸载

    linux下.run文件的安装与卸载   .run文件的安装很简单,只需要为该文件增加可执行属性,即可执行安装 以 virtualbox 的安装文件 virtualbox-3.1.6-59338-Li ...

  2. Wbemtest查询

    运行wbemtest,打开后连接命名空间,默认为“root\cimv2”,可以连接到”IIS管理命名空间(此为Windows Server 2008 R2)“ 查看该命名空间下所有可用的类:单击“枚举 ...

  3. Linux vmstat具体解释(系统IO)

    1. vmstat 能够展现给定时间间隔的server的状态值,包含server的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况 vmstat 2 10 2: 每隔2s 10 : 统计10次 ...

  4. 批处理:循环解压不同文件夹下的zip压缩包

    结构如下 A文件夹: A1文件.zip A2文件.zip A3文件.zip B文件夹: B1文件.zip B2文件.zip B3文件.zip ...... 批处理文件:rezip.bat如下 @ech ...

  5. 基于Windows的套接字相关函数及示例

    链接ws2_32.lib库 头文件#include <winsock2.h> int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSADa ...

  6. MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

    MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...

  7. C# select的联动效果

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head&g ...

  8. union的用法

    union的用法 union用来连接两个查询语句,把两个查询语句的查询结果合并起来,两个查询语句的查询字段个数必须一样,否则会出错,查询的字段可以不一样,类型也可以不一样,但是这样查询的意义不大,如果 ...

  9. 一个月的时间--java从一无所有到能用框架做点东西出来

    四月20号到六月2号 因为顺利完成了Struts在线考试系统的学习,基本掌握了struts框架的原理和他众多复杂的标签.趁着下一件事情还没到时间,也顾不上写昨天研习的student部分和今天stude ...

  10. 几个MVC属性

    1   用于显示提示字符串 [Required(ErrorMessage="请输入类型名称")] public string ArticleTypeName { get; set; ...