2

我有以下存储过程:

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# 中将此列转换为长数据类型。有谁能够帮我?

4

2 回答 2

0

你可以试试Convert function

Convert(varchar(50),SearchId ) 
于 2013-03-25T13:46:03.237 回答
0

我想问题是有一些未分配的 SearchId 导致将 null 转换为 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
///... 
于 2013-03-25T14:00:47.887 回答