在数据库中,将sql语句拼接成一个字符串,其中有int型的数据拼接到一起,执行的时候就出现啦消息
'消息 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))然后再与字符相加,就可以啦