簡體   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