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 中发生
其他信息: 指定的转换无效。
1、
(int)是类型+值的转换
Convert.ToInt32 是值的强制转换 类比 (=== 与 ==)
2、
@@identity 返回类型是 numeric 类型 ,可以看下这个介绍:MSDN, 所以(int)这种会报异常。
Convert.ToInt32 是有不同参数类型的重载方法:
多谢,解答的前面