无效强制转换异常

本文关键字:异常 转换 无效 | 更新日期: 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
///... 
相关文章: