繁体   English   中英

转换失败-将nvarchar值转换为数据类型int

[英]Conversion failed - nvarchar value to data type int

我有以下sql存储过程,但是c#代码通过以下消息捕获了异常:

Conversion failed when converting the nvarchar value to data type int

SQL存储过程

@byTestType int
AS
DECLARE @qry nvarchar(3000)
IF @byTestType = 4
BEGIN
    SET @qry = 'SELECT * FROM aTbl ORDER BY aCol'
END
ELSE
BEGIN
    SET @qry = 'SELECT * FROM aTbl WHERE aCol= '
    SET @qry = @qry +''''+CAST(@byTestType as varchar(3))+''''
END

EXEC sp_executesql @qry

aCol数据类型为varchar(3)

不明白是什么问题!

我做了一些研究并修改了您的演示

DECLARE @byTestType int = 1200

DECLARE @qry nvarchar(3000)

IF @byTestType = 4
BEGIN
    SET @qry = 'SELECT * FROM aTbl ORDER BY aCol'
END
ELSE
BEGIN
    SET @qry = 'SELECT * FROM aTbl WHERE aCol= '
    SET @qry = @qry +''''+CAST(@byTestType as varchar(3))+''''
END

print @qry

有趣的是,输出为:

SELECT * FROM aTbl WHERE aCol ='*'

请修改您的行

 SET @qry = @qry +''''+CAST(@byTestType as nvarchar)+''''

请同时注意以下情况

DECLARE @byTestType int = NULL

在这种情况下,您的@qry将为NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM