首页 新闻 赞助 找找看

数据库返回的@@identity 整形不能强制转化吗?

0
悬赏园豆:5 [已解决问题] 解决于 2017-01-23 01:23
   public int AddNew(companyModel model)
        {
            object o = new SQLHelper().ExecuteScalar("insert company values(@parentId,@Name,@Body);select @@identity",
               new SqlParameter("@parentId",model.ParentId), new SqlParameter("@Name",model.Name), new SqlParameter("@Body", model.Body) );
       //  return Convert.ToInt32(o);这个是正常的
            return (int)o;//为什么这样子不行呢 ?o的值是整形呢
        }

提示异常

“System.InvalidCastException”类型的未经处理的异常在 呼叫中心.exe 中发生

其他信息: 指定的转换无效。

hello,逗比的主页 hello,逗比 | 菜鸟二级 | 园豆:203
提问于:2017-01-22 00:30
< >
分享
最佳答案
1

1、

(int)是类型+值的转换  

Convert.ToInt32 是值的强制转换 类比 (=== 与 ==)

2、

@@identity 返回类型是 numeric 类型 ,可以看下这个介绍:MSDN, 所以(int)这种会报异常。

Convert.ToInt32 是有不同参数类型的重载方法:

 

收获园豆:5
吳先森321 | 菜鸟二级 |园豆:347 | 2017-01-22 10:03

多谢,解答的前面

hello,逗比 | 园豆:203 (菜鸟二级) | 2017-01-23 01:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册