类型“System.Int32”的对象无法转换为类型“System.String”

asp.net错误:
调用接口时,入参循环到某一个字段时报错,显示:
System.ArgumentException: 类型“System.Int32”的对象无法转换为类型“System.String”

img

请问这是为什么,应该怎么解决,谢谢!

setValue里的dr[i]改为dr[i].ToString()
dataTable里面放的是object,里面很可能有的列是int型,有的列是string型
在使用之前,你应该强制转换成需要的类型,而不是直接把它的原始值拿来用,很容易出问题

道理很简单,你通过类的字段名获取到字段以后,然后将DT里面的对应字段赋值给你NEW 出来的T里面的对应字段,但是虽然T泛型,可是到了具体的类型以后,类里面的字段是有类型的。
你报这个错,代表某个字段是string类型的,但是你给了它一个int类型的值,所以报错了!