C# linq Field 在数据库查出一列数据转换成int数组时报错?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# linq Field 在数据库查出一列数据转换成int数组时报错?相关的知识,希望对你有一定的参考价值。
谁给解决一下这个问题,我从oracle数据库查出一列数据,在数据库中是Number(3,0)类型,然后想把这一列转换成int数组,但是报错了。是什么原因?请大神赐教。感谢了。
参考技术A你debug查看一下这个table里面的这个字段是什么类型然后用那个类型就行了
查看方法可以像这样:
追问类型好像没问题。
这里有说类型映射
我觉得你这个应该是short
你可以试试把int、long、decimal等数字类型的都试试,很快就能知道答案了
还有你要确定你的返回值里面有没有DBNULL,这样的话就要用可空类型
参考技术B 类型转换失败,可能列数据里包含了非int数据了 参考技术C .Field方法是在哪定义的,转到定义看一下(我在官方文档没查到)追问你这明显是用了个很老的库(一般直接ado.net才会用到)
ef里面不应该用这个方法
如何把oracle中查询出来的一列进行拆分。如查出结果为1@2@3@4,如何拆分成 1 2 3
select seqn from table;得到的值是1@2@3@4,这该如何操作呢
大哥我是说在数据库中如何做,不是说在java中怎么实现的。
instr得到各个顺序的@的位置,truncate通过得到的位置情况进行字符串截取。 参考技术B select replace((select seqn from table) ,'@',' ') from dual 参考技术C replace('1@2@3@4','@',' ') from dual
是把@替换成空串
if( id.indexOf(","+?)!=-1 )
是看是否存在为?的字符
public List<char> getChar(String seqn)
List<char> charlist=new ArrayList<char>();
for(int i=0;i<seqn.length;i++)
char str=seqn.charAt(i);
if(!str.equals("@"))
charlist.add(str);
return charlist;
本回答被提问者采纳
以上是关于C# linq Field 在数据库查出一列数据转换成int数组时报错?的主要内容,如果未能解决你的问题,请参考以下文章