Unable to cast object of type 'System.Nullable`1[System.Int16][]' to type 'System.IConvertible'


一段代码99%不会出错,0.1%会报上边的错,debug费了老鼻子时间,发现此坑很深。异常是 cmd.ExecuteNonQuery() 抛的,实际是 para.Value = list.Select(d => d.ID).ToArray() 引起的,但是此句实在是没毛病啊!。。。。。。。。哪?。。。。。。。。而最终原因是数据源数量为0,list.Count=0。list.Count=0的情况下,用 ArrayBind 实际本无意义了,所以解决方案是加上行判断if(list.Count>0)。

而99%不报错是99%的情况下数据不为空。


var q = from d in db.tbl  select d;

var list = q.ToList();

if(list.Count>0)     //如果数据集为空还执行,会报 ...'System.IConvertible' 的异常
{
var cmd =...

cmd.ArrayBindCount = list.Count();
cmd.BindByName = true;

var para = new Oracle.ManagedDataAccess.Client.OracleParameter();
para.ParameterName = "ID";
para.OracleDbTypeEx = Oracle.ManagedDataAccess.Client.OracleDbType.NVarchar2;
para.Direction = System.Data.ParameterDirection.Input;
para.Value = list.Select(d => d.ID).ToArray();     //0.1%这里报异常
cmd.Parameters.Add(para);

cmd.ExecuteNonQuery();
}

转载于:https://www.cnblogs.com/flyGy/p/9482850.html

ODP 使用 ArrayBind 时可能会遇到的巨坑 'System.IConvertible' 的解决方法相关推荐

  1. php mssql_result 255 string,PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法

    本文实例讲述了PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法.分享给大家供大家参考.具体分析如下: PHP 连接 MSSQL 的新手经常遇到这个问题:数据库里面的 nvarch ...

  2. 在Openstack上部署compute节点上时,开启服务openstack-nova-compute.service无法启动的解决方法

    在Openstack上部署compute节点上时,开启服务openstack-nova-compute.service无法启动的解决方法 参考文章: (1)在Openstack上部署compute节点 ...

  3. Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法

    Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法 参考文章: (1)Idea运行web项目时,提示j ...

  4. Android 软键盘弹出时把布局顶上去,控件乱套解决方法

    Android 软键盘弹出时把布局顶上去,控件乱套解决方法 参考文章: (1)Android 软键盘弹出时把布局顶上去,控件乱套解决方法 (2)https://www.cnblogs.com/zhuj ...

  5. 关于Typora编辑器编写markdown文档时插入出现前字吞后字的解决方法

    关于Typora编辑器编写markdown文档时插入出现前字吞后字的解决方法 原因是按到了键盘上的Insert键,使得编辑模式变为了改写,所以会把文本替换掉,这个按键没有状态标示.

  6. win7系统mysql连接不上数据库吗_Win7系统使用数据库时mysql频繁掉线无法连接的两种解决方法...

    近日有windows7 64位旗舰版系统用户在使用mysql数据库的时候,发现mysql总是频繁掉线,导致无法连接,遇到这样的问题该如何解决呢?接下来为大家带来Win7系统使用数据库时mysql频繁掉 ...

  7. 上传文件时$_FILES为空,可能的原因及解决方法

    上传文件时$_FILES为空,可能的原因及解决方法 参考文章: (1)上传文件时$_FILES为空,可能的原因及解决方法 (2)https://www.cnblogs.com/i6010/articl ...

  8. ckeditor:复制内容到ckeditor时,只保留文本,忽略其样式解决方法

    ckeditor:复制内容到ckeditor时,只保留文本,忽略其样式解决方法 参考文章: (1)ckeditor:复制内容到ckeditor时,只保留文本,忽略其样式解决方法 (2)https:// ...

  9. 执行cmd命令时:因为在此系统上禁止运行脚本的解决方法

    执行cmd命令时:因为在此系统上禁止运行脚本的解决方法 参考文章: (1)执行cmd命令时:因为在此系统上禁止运行脚本的解决方法 (2)https://www.cnblogs.com/cat-eol/ ...

最新文章

  1. JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
  2. JS三种简单排序算法
  3. 9.6-OOP语言 对接口和抽象类的理解
  4. R语言-决策树-party包
  5. 2021暑假每日一题 【week4 完结】
  6. linux怎样自制库_linux 下动态链接库的制作与使用
  7. spring配置详解-模块化配置
  8. OpenCV直方图均衡化
  9. python海龟图画龙珠_火影,海贼王,七龙珠,还在为漫画书发愁!我用Python一键生成电子漫画书...
  10. 【李宏毅机器学习】04:梯度下降Gradient Descent
  11. Unity飞机大战源码下载
  12. 论文导读 | 图上的可达性问题
  13. 生产力工具评测:云笔记、离线笔记、云 Office、Markdown 编辑器
  14. 中小企业安全路由器防火墙
  15. 【小技巧】2345——劫持浏览器主页(Chrome、Edge)
  16. 大数据告诉你,30年来有多少中国人移民美国
  17. Grab第一季营收2.28亿美元:亏损4.35亿美元 收窄35%
  18. VIJOS 1114 FBI树
  19. 西南财经大学跨考计算机,我的跨考会计经历-给2011年朋友的一点建议
  20. 使用Python做中文分词和绘制词云

热门文章

  1. REVERSE-PRACTICE-BUUCTF-32
  2. 【ZOJ - 3780】Paint the Grid Again(拓扑排序,图论,证明性质)
  3. html loader的作用,webpack认识loader的作用
  4. linux强行卸载qt,Linux下卸载QT SDK
  5. Arraylist添加5个学生对象,按成绩降序, 删除前三之后的学生
  6. leetcode235. 二叉搜索树的最近公共祖先
  7. leetcode1 两数之和
  8. C++:23 再议const的用法(下)
  9. C++:16---强制类型转换和类型转换
  10. 详细描述三个适于瀑布模型的项目_IT项目管理笔记——方法选择和软件评估