问题:

//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. 关闭utorrent的广告

    版本:3.4.9 / 方法来源:wikihow. 在"选项-高级"里将下面的选项全部改成false. offers.left_rail_offer_enabledoffers.sp ...

  2. PHP操作SQLITE

    一直以来.我们操作SQLITE,都是基于PHP默认的SQLITE操作模块. 今天介绍一个能够操作SQLITE2,和SQLITE3的PHP类,此为我封装的. <? php abstract cla ...

  3. VersionCode和VersionName

    关于apk更新版本的问题   先上结论: Google为APK定义了两个关于版本属性:VersionCode和VersionName,他们有不同的用途. VersionCode:对消费者不可见,仅用于 ...

  4. YUV422蓝屏显示输出功能辅助调试

    YUV422蓝屏显示输出功能辅助调试 YUV422有YUYV,YVYU,UYVY,VYUY四种,以下笔者就就以UYVY为例介绍一下数据构成.因为常常要跟视频输入打交道,所以YUV422这种常见的视频信 ...

  5. Android开发书籍推荐

    当你看到这些文字时,那么恭喜你,你可能选择了一个无限可能的方向. Android,Google出品,信誉保证,你值得深入研究. 学习一样新事物或许有多种方式,报培训班,看视频,向高手请教等等,但一本好 ...

  6. centos nginx install openssl

    1.查看是否已经安装 ssl 组件 [root@localhost wwwlogs]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ./nginx ...

  7. mac上SVN项目管理,提示被锁定的解决方法

    问题 mac上SVN项目管理,提示被锁定.不能commit.也不能update.提示 clean the working copy and then. .. 解决方法 watermark/2/text ...

  8. careercup-数学与概率 7.7

    7.7 有些数的素因子只有3.5.7,请设计一个算法,找出其中第k个数. 解法: 首先,我们可以将满足条件的前几个数列出来,以此寻找解题思路. 一种简单的思路就是对于已经列出的数,我们依次去乘以3,5 ...

  9. Socket解决粘包问题2

    在AsynServer中对接收函数增加接收判断,如果收到客户端发送的请求信息,则发送10个测试包给发送端,否则继续接收,修改后的接收代码如下: private void AsynReceive() { ...

  10. Android(java)学习笔记151: SurfaceView使用

    1.SurfaceView简介       在一般的情况下,应用程序的View都是在相同的GUI线程(UI主线程)中绘制的.这个主应用程序线程同时也用来处理所有的用户交互(例如,按钮单击或者文本输入) ...