关于datarow 类型转换出现异常的解决方法

guanshangming 2009-04-03 12:28:40
DataRow dr = dataset.Tables[0].Rows[i];
int k = (int)dr[0];

上面这段代码中,如果dr[0]的字段的类型为smallint,就会出错,同样是数值类型,有什么好方法解决该问题?
...全文
164 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanshangming 2009-07-06
  • 打赏
  • 举报
回复
Dobzhansky给出的答案更理想一些。
谢谢!
Dobzhansky 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cja03 的回复:]
int k = int.Parse(dr[0].ToString());
[/Quote]

DbNull 也会异常吧
Dobzhansky 2009-04-03
  • 打赏
  • 举报
回复
Convert.ToInt32(dr[0]); 这个如果是 DbNull , 会异常,
试试:

int k = 0;

if (int.TryParse(dr[0].ToString(), out k))
;
else
;
guanshangming 2009-04-03
  • 打赏
  • 举报
回复
明白,原来这么简单啊,就是效率似乎低了点,与C++比较的话.
cja03 2009-04-03
  • 打赏
  • 举报
回复
int k = int.Parse(dr[0].ToString());
yangqidong 2009-04-03
  • 打赏
  • 举报
回复
DataRow dr = dataset.Tables[0].Rows[i];
int k = Convert.ToInt32(dr[0]);

111,126

社区成员

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

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

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