无效强制转换异常
本文关键字:异常 转换 无效 | 更新日期: 2023-09-27 18:05:58
我有以下存储过程:
Create PROCEDURE [dbo].[GETVendorsStatsAgainstSearTerm]
@Date DateTime ,
@SearchId bigint
AS
declare @cmd as varchar(2000)
set @cmd = ' select *, ' + cast(SearchId as varchar) + ' as SearhId from tbl'
exec (@cmd)
我想将SearchId
作为要运行选择查询的列。我想知道SearchId
列的正确类型。
我无法将此SearchId
列转换为c#中的长数据类型。有人能帮帮我吗?
您可以尝试使用Convert function
Convert(varchar(50),SearchId )
我猜问题是,有一些未分配的SearchId's,这导致一个空到varchar。
试试这样写:
//...
set @cmd = CASE
WHEN (SearchId IS NOT NULL) THEN (' select *, ' + cast(SearchId as varchar) + ' as SearhId from tbl')
ELSE ' select *, 0 as SearhId from tbl'
END
///...