C# 使用dapper ExecuteScalar object接收新增后INT主键 怎么多了一个M

 我来答
百度网友d242235
2017-03-16 · TA获得超过2385个赞
知道大有可为答主
回答量:1403
采纳率:84%
帮助的人:801万
展开全部
你这个结果不正常,Dapper的ExecuteScalar和ado.net原有的ExecuteScalar一样,只是返回结果集的第一个值,如果只有一个insert语句,应该返回null才对。
是不是你的语句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。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式