short向int的转换出错了
查询access数据库得到dt,其中dt.Rows[i][7]调试状态下通过快速监视看类型是: object {short},我需要将其赋给Int类型的变量:
C# code
结果报错:“异常消息"指定的转换无效。"string”,通过快速监视查看(int )dt.Rows[i][7]的值,显示“(int )dt.Rows[i][7] 无法将“dt.Rows[i][7]”作为“int”取消装箱”。
什么原因呢?望大家指点,谢谢!
C# code
Int hat =(int )dt.Rows[i][7]
结果报错:“异常消息"指定的转换无效。"string”,通过快速监视查看(int )dt.Rows[i][7]的值,显示“(int )dt.Rows[i][7] 无法将“dt.Rows[i][7]”作为“int”取消装箱”。
什么原因呢?望大家指点,谢谢!
作者: jshzp 发布时间: 2011-06-16
object {short}说明装箱前是short类型的,直接拆箱也只能拆成short类型的,
改成Int hat =Convert.ToInt32(dt.Rows[i][7]就ok了,强转是可以的
改成Int hat =Convert.ToInt32(dt.Rows[i][7]就ok了,强转是可以的
作者: reface 发布时间: 2011-06-16
dt.Rows[i][7]好象不是C#的语法,应该是dt.Rows[i,7], 试试?
作者: jq_whh 发布时间: 2011-06-16
拆箱后的类型只能是装箱前的那个数据类型,是吗?
这里面的基本概念是怎样的啊?我不太懂,谢谢!
这里面的基本概念是怎样的啊?我不太懂,谢谢!
作者: jshzp 发布时间: 2011-06-16
引用 2 楼 jq_whh 的回复:
dt.Rows[i][7]好象不是C#的语法,应该是dt.Rows[i,7], 试试?
dt.Rows[i][7]好象不是C#的语法,应该是dt.Rows[i,7], 试试?
“dt.Rows[i][7]”没有问题,dt是数据库查询后得到的DataTable。
作者: jshzp 发布时间: 2011-06-16
int hat = Convert.ToInt32(dt.Rows[i][7]);
作者: caozhy 发布时间: 2011-06-16