日期:2014-05-19  浏览次数:20507 次

我刚开始学习,想问个问题,希望有人能帮我解决,谢谢
我先是string   sql   =   "select   max(record)   from   XXX ";
取record表里的最大值
用以下语句获得并转换
int   rc   =Convert.ToInt32(cmd2.ExecuteScalar().ToString());
int   sum=rc+1;
但是每次在提交的时候提示:int   rc   =Convert.ToInt32(cmd2.ExecuteScalar().ToString());这句输入字符串的格式不正确,是什么原因呢,这样的转换对吗?谢谢

------解决方案--------------------
你直接在数据库 里面执行
select max(record) from XXX
看看得到的是什么

有可能是数据过大.

你换成Convert.ToDouble 试试
------解决方案--------------------
看上去没错
把sql在查询分析器里面执行一下,看看是什么结果
------解决方案--------------------
如果为空
判断cmd2.ExecuteScalar()的返回值是否等于 System.DBNull.Value
------解决方案--------------------
cmd2.ExecuteScalar()的返回值为空就会出那错,可以用条件表达试,为空就取默认值(自己加个默认值),不为空就取Convert.ToInt32(cmd2.ExecuteScalar().ToString())