c#项目出现类型“System.Decimal”的对象无法转换为类型“System.Int32”。异常,下划线是报错的地方

qq_24002703 2017-04-17 09:26:52
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Omu.ValueInjecter;

namespace MadMan.Li.Common.Data
{
public class ReaderInjection : KnownSourceValueInjection<IDataReader>
{
protected override void Inject(IDataReader source, object target)
{
for (var i = 0; i < source.FieldCount; i++)
{
var activeTarget = target.GetProps().GetByName(source.GetName(i),true);
if (activeTarget == null) continue;

var value = source.GetValue(i);
if (value == DBNull.Value) continue;

activeTarget.SetValue(target, value);
}
}
}
}
...全文
1719 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28803955 2017-04-20
  • 打赏
  • 举报
回复
加在SQL语句里面啊~~~
qq_24002703 2017-04-20
  • 打赏
  • 举报
回复
最后问题是因为:没有加在sql语句里
Mooyi_水 2017-04-18
  • 打赏
  • 举报
回复
var 可读性差
引用 6 楼 wang_peng_yl 的回复:
C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
cheng2005 2017-04-18
  • 打赏
  • 举报
回复
自己调试,找到出问题的字段,把定义改了。 这种问题你要是自己不会调试,神仙都帮不上忙
qq_24002703 2017-04-18
  • 打赏
  • 举报
回复
引用 15楼wang_peng_yl 的回复:
[quote=引用 10 楼 qq_24002703的回复:][quote=引用 8楼wang_peng_yl 的回复:][quote=引用 7 楼 wddw1986 的回复:] [quote=引用 6 楼 wang_peng_yl 的回复:] C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
不懂别装懂好吗,你根本都没看明白楼主的代码是做什么的。[/quote] 真有意思,你管得着我怎么回答么,楼主都没说什么,管好你的嘴比什么都强,[/quote]回答的方法都没用[/quote] 没用你可以不采纳,最起码的尊重的有吧,都回答有用的,估计没人会理你的帖子[/quote]我知道,我的意思是这些方法都不行哎,卡到现在了,唉。。。
wang_peng_yl 2017-04-18
  • 打赏
  • 举报
回复
引用 10 楼 qq_24002703的回复:
[quote=引用 8楼wang_peng_yl 的回复:][quote=引用 7 楼 wddw1986 的回复:] [quote=引用 6 楼 wang_peng_yl 的回复:] C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
不懂别装懂好吗,你根本都没看明白楼主的代码是做什么的。[/quote] 真有意思,你管得着我怎么回答么,楼主都没说什么,管好你的嘴比什么都强,[/quote]回答的方法都没用[/quote] 没用你可以不采纳,最起码的尊重的有吧,都回答有用的,估计没人会理你的帖子
qq_24002703 2017-04-18
  • 打赏
  • 举报
回复
引用 12楼xuzuning 的回复:
其实是 oracle 中的表定义出了问题 请你认真核实一下
i的值是1M,不知道为啥
xuzuning 2017-04-18
  • 打赏
  • 举报
回复
引用 2 楼 qq_24002703 的回复:
现在不清楚这个是哪个字段的数据类型出了问题,怎么定位到呢?
跟踪调试一下,看看异常前 i 的值是多少
引用 6 楼 wang_peng_yl 的回复:
C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
这里还真得用 var 你不能假定一个表的所有字段都是同一个类型 var 虽说具有弱类型语言性质 但你把它当作 C/C++ 的联合体(union)来理解的话,那就不违背你强类型的癖好了
xuzuning 2017-04-18
  • 打赏
  • 举报
回复
其实是 oracle 中的表定义出了问题 请你认真核实一下
qq_24002703 2017-04-18
  • 打赏
  • 举报
回复
引用 4楼娃都会打酱油了 的回复:
不过你为啥不用dapper呢?都帮你做好了,何苦自己做呢
公司的框架,没办法,一直是连的sqlsever数据库,现在换oracle,就出了问题
qq_24002703 2017-04-18
  • 打赏
  • 举报
回复
引用 8楼wang_peng_yl 的回复:
[quote=引用 7 楼 wddw1986 的回复:] [quote=引用 6 楼 wang_peng_yl 的回复:] C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
不懂别装懂好吗,你根本都没看明白楼主的代码是做什么的。[/quote] 真有意思,你管得着我怎么回答么,楼主都没说什么,管好你的嘴比什么都强,[/quote]回答的方法都没用
cheng2005 2017-04-17
  • 打赏
  • 举报
回复
引用 6 楼 wang_peng_yl 的回复:
C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
不懂别装懂好吗,你根本都没看明白楼主的代码是做什么的。
wang_peng_yl 2017-04-17
  • 打赏
  • 举报
回复
C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
qq_24002703 2017-04-17
  • 打赏
  • 举报
回复
引用 3楼娃都会打酱油了 的回复:
System.Decimal
System.Int32
不是都给你提示了吗? 赋值前判断下 value 的Type和activeTarget的Type
如果这行注释了就能运行了,就是查不多数据库数据
  • 打赏
  • 举报
回复
不过你为啥不用dapper呢?都帮你做好了,何苦自己做呢
  • 打赏
  • 举报
回复
System.Decimal
System.Int32
不是都给你提示了吗? 赋值前判断下 value 的Type和activeTarget的Type
qq_24002703 2017-04-17
  • 打赏
  • 举报
回复
引用 1楼江南小鱼 的回复:
反射赋值,要保证数据值的类型和目标属性类型兼容。
现在不清楚这个是哪个字段的数据类型出了问题,怎么定位到呢?
江南小鱼 2017-04-17
  • 打赏
  • 举报
回复
反射赋值,要保证数据值的类型和目标属性类型兼容。
正怒月神 2017-04-17
  • 打赏
  • 举报
回复
看一下 activeTarget.SetValue();方法的参数类型。 和target, value这两个参数的类型
wang_peng_yl 2017-04-17
  • 打赏
  • 举报
回复
引用 7 楼 wddw1986 的回复:
[quote=引用 6 楼 wang_peng_yl 的回复:] C# 里不建议用var 这个东西,可读性差,var 脚本里用用还行 都提示了,就强制转一下 activeTarget.SetValue(target, (int)value);
不懂别装懂好吗,你根本都没看明白楼主的代码是做什么的。[/quote] 真有意思,你管得着我怎么回答么,楼主都没说什么,管好你的嘴比什么都强,

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧