C# 使用dapper ExecuteScalar object接收新增后INT主键 怎么多了一个M
1个回答
展开全部
你这个结果不正常,Dapper的ExecuteScalar和ado.net原有的ExecuteScalar一样,只是返回结果集的第一个值,如果只有一个insert语句,应该返回null才对。
是不是你的语句insert执行完后,又去select了什么decimal字段?
是不是你的语句insert执行完后,又去select了什么decimal字段?
追问
insert执行完后 SELECT SCOPE_IDENTITY(); 查询主键 int类型的
追答
sql server的自增长可以使用tinyint, smallint, int, bigint, decimal(p, 0)或者numeric(p, 0),为了同时满足以上所有类型,SCOPE_IDENTITY()函数不得不使用最高的精度,也就是decimal类型,所以你的keyid是23m,表示一个C# decimal类型的数字。
如果只想用int,可以用select CONVERT(int,scope_identity())来代替你的sql。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询