消息 245,级别 16,状态 1,第 1 行 在将 varchar 值 '2,8' 转换成数据类型 int 时失败。


错误问题:

消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 '2,8' 转换成数据类型 int 时失败。

ps: 这是在后台分配菜单权限这个功能时出现的问题

一,解决方法:

将用户表和菜单表用CHARINDEX方法来选择存在的rows,返回集合,

SELECT  *
FROM    dbo.Meun m
WHERE   CHARINDEX(CONVERT(VARCHAR, m.Id), ( SELECT  AuthorityId
                                            FROM    dbo.UserInfo u
                                            WHERE   u.Id = '4'
                                          )) > 0;

二,而以上必须使用,CONVERT(VARCHAR, m.Id)将菜单Id类型转换查询,如不然则会第 1 行 在将 varchar 值 '2,8' 转换成数据类型 int 时失败。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM