我有这个疑问错误:字符串“声明@ RepInt =”翻一番转换无效
Dim count as integer = 4
Dim sql As String = " DECLARE @rep INT = " + count + "; " + _
" WITH cte AS " + _
" (" + _
" SELECT TOP (@rep) " + _
" ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS N " + _
" FROM sys.All_Columns ac1 " + _
" CROSS JOIN sys.ALL_Columns ac2 " + _
") " + _
" SELECT t.Barcode" + _
" FROM A_Documents t " + _
" CROSS JOIN cte " + _
" where idDocument = 'doc-123456' " + _
" ORDER BY t.Barcode desc; "
如果我把一个数字,没有一个变种,IST的工作原理:
Dim sql As String = " DECLARE @rep INT = 4; " + _
但是,当我把我的COUNT变种,是不行的:
Dim sql As String = " DECLARE @rep INT = " + count + "; " + _
并出现此错误消息:
The conversion of string " Declare @RepInt=" to double is not valid
其实你并不需要声明变量。你可以在TOP(+ count +)内立即传递它。其次考虑使用参数绑定而不是字符串连接。另外如果你需要将'count'转换为字符串。 – lad2025
再次感谢您的帮助,我不能回答您的评论,因为不是答案 –
不要紧,请在下面提出答案;) – lad2025