消息 245,级别 16,状态 1,

    在数据库中,将sql语句拼接成一个字符串,其中有int型的数据拼接到一起,执行的时候就出现啦

消息 245,级别 16,状态 1,第 66 行
在将 varchar 值 '

消息 245,级别 16,状态 1,第 65 行
在将 varchar 值 '
SELECT 
p.Br_Division_Code,

COUNT(DISTINCT p.Staff_No) [人数],
' 转换成数据类型 int 时失败。

    查得:在C# .NET里字符串与数字相加,所得的结果都是string型,在SQLserver 里面恰恰相反,sql里面数字与字符相加,会把字符转换成数字,如果转换不成功就出现这个‍ 消息 245,级别 16,状态 1 错误。

    解决:先把数字显示转换 cast(@number as varchar(50))然后再与字符相加,就可以啦

你可能感兴趣的:(sql,数据库,.net,String,C#,sqlserver)