Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据类型varchar转换为bigint时出错_C#_Asp.net_Sql_Sql Server - Fatal编程技术网

C# 将数据类型varchar转换为bigint时出错

C# 将数据类型varchar转换为bigint时出错,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,我正在从列表框中检索值,并将它们格式化为字符串 if (lbRaisedByLogin.SelectedIndex != -1) { foreach (ListItem item in lbRaisedByLogin.Items) { if (item.Selected == true) { sb.AppendFormat("{0},", item.Value);

我正在从列表框中检索值,并将它们格式化为字符串

if (lbRaisedByLogin.SelectedIndex != -1)
    {
        foreach (ListItem item in lbRaisedByLogin.Items)
        {
            if (item.Selected == true)
            {
                sb.AppendFormat("{0},", item.Value);
            }
        }

        searchCase.raisedByLogin = sb.ToString().TrimEnd(Convert.ToChar(","));
        sb.Length = 0;
    }
我将这些字符串作为参数传递给存储过程(数据类型--Varchar(Max))

在存储过程中,我比较这些值,如

SELECT * FROM AUS_CID_Cases
WHERE
AddedBy IN ( @raisedByLogin )
其中@raisedByLogin是我传递的参数之一。它的值类似于@raisedByLogin=“4,2,1”

AddedBy具有数据类型bigint

当我运行代码时,我得到的错误是“将数据类型varchar转换为bigint时出错”。。我理解这是因为AddedBy列具有数据类型bigint。我无法更改该数据类型

然而,当我投下AddedBy时

SELECT * FROM AUS_CID_Cases
WHERE
CAST(AddedBy as VARCHAR) IN ( @raisedByLogin )
我没有得到错误,但没有选择任何内容,即我没有从select语句中得到任何结果


我能做什么?

尝试在存储过程中构建SQL select查询,然后执行

DECLARE @raisedByLogin varchar(600)

SET @SQL = 
'SELECT * FROM AUS_CID_Cases
 WHERE
  AddedBy IN (' + @raisedByLogin + ')' 

EXEC(@SQL)  

检查更多信息

尝试在存储过程中构建SQL select查询,然后执行

DECLARE @raisedByLogin varchar(600)

SET @SQL = 
'SELECT * FROM AUS_CID_Cases
 WHERE
  AddedBy IN (' + @raisedByLogin + ')' 

EXEC(@SQL)  
查看更多信息

首先创建此视图

CREATE FUNCTION [dbo].[Split](@String varchar(8000), @Delimiter char(1))       
returns @temptable TABLE (items varchar(8000))       
as       
begin       
    declare @idx int       
    declare @slice varchar(8000)       

    select @idx = 1       
        if len(@String)<1 or @String is null  return       

    while @idx!= 0       
    begin       
        set @idx = charindex(@Delimiter,@String)       
        if @idx!=0       
            set @slice = left(@String,@idx - 1)       
        else       
            set @slice = @String       

        if(len(@slice)>0)  
            insert into @temptable(Items) values(@slice)       

        set @String = right(@String,len(@String) - @idx)       
        if len(@String) = 0 break       
    end   
return  
找到上述函数,并设法解决了此问题…请先创建此视图

CREATE FUNCTION [dbo].[Split](@String varchar(8000), @Delimiter char(1))       
returns @temptable TABLE (items varchar(8000))       
as       
begin       
    declare @idx int       
    declare @slice varchar(8000)       

    select @idx = 1       
        if len(@String)<1 or @String is null  return       

    while @idx!= 0       
    begin       
        set @idx = charindex(@Delimiter,@String)       
        if @idx!=0       
            set @slice = left(@String,@idx - 1)       
        else       
            set @slice = @String       

        if(len(@slice)>0)  
            insert into @temptable(Items) values(@slice)       

        set @String = right(@String,len(@String) - @idx)       
        if len(@String) = 0 break       
    end   
return  
找到了上面的函数,并设法解决了这个问题