我遇到了一个奇怪的问题,以下是设置:
ASP.NET 3.5 app/MSSQLServer2008后端。
我从代码中调用了ExecuteScalar,它返回了一个对象,然后我尝试将该对象强制转换为int(实际上我有一个通用方法)
T ConvertDBValue<T>(object o) {...}
,但这并不重要)。
ExecuteScalar正在执行以下存储过程:
...
insert into ...
select scope_identity()
我的主键是一个标识字段,返回85。接下来我得到的是InvalidCastException试图将85转换为int。
...
DECLARE @x int
insert into ...
select @x = scope_identity()
select @x
有人能告诉我我的第一种方法有什么问题吗?为什么不能将85转换为int?