C# 编辑要传递给存储过程的字符串

C# 编辑要传递给存储过程的字符串,c#,string,stored-procedures,C#,String,Stored Procedures,我有下面的字符串,我将它传递给一个存储过程,然后作为where子句的一部分使用 WHERE order IN @passedOrders 字符串如下所示: 1234, 12345, 123456 为了使where语句正常工作,我需要将这些数字中的每一个都视为一个单独的值,因此我需要字符串如下所示: '1234', '12345', '123456' 使用C语言编辑字符串以添加额外字符的最佳方法是什么 参数不是这样工作的——这里的参数总是匹配一个值;请尝试: 订单在哪里 从字符串中选择cas

我有下面的字符串,我将它传递给一个存储过程,然后作为where子句的一部分使用

WHERE order IN @passedOrders
字符串如下所示:

1234, 12345, 123456
为了使where语句正常工作,我需要将这些数字中的每一个都视为一个单独的值,因此我需要字符串如下所示:

'1234', '12345', '123456'

使用C语言编辑字符串以添加额外字符的最佳方法是什么

参数不是这样工作的——这里的参数总是匹配一个值;请尝试:

订单在哪里 从字符串中选择casttrim[value]作为int_split@passedOrders, ','
如果值实际上不是int,请删除强制转换步骤,这不是参数的工作方式-此处的in将始终与单个值匹配;请尝试:

订单在哪里 从字符串中选择casttrim[value]作为int_split@passedOrders, ','
如果值实际上不是int,请删除强制转换步骤。如果您使用的是2016 130之前的SQL Server版本,字符串分割函数不可用

如果是这样的话,我建议采用与此类似的方法:

创建如下函数:

CREATE FUNCTION [SplitIntegers]
(
   @List      VARCHAR(MAX),
   @Delimiter CHAR(1)
)
RETURNS TABLE
AS
RETURN 
(     SELECT [Item] = CONVERT(INT, [Item]) 
      FROM
      ( 
        SELECT [Item] = x.i.value('(./text())[1]', 'VARCHAR(max)')
        FROM ( SELECT [XML] = CONVERT(XML, '<i>' + REPLACE(@List, @Delimiter, '</i><i>') + '</i>').query('.')
      ) AS [A] 
      CROSS APPLY [XML].nodes('i') AS x(i) ) AS [Y]
      WHERE [Item] IS NOT NULL
);

注意:提供的函数仅适用于INT类型。

如果您使用的是2016 130之前的SQL Server版本,则字符串分割函数不可用

如果是这样的话,我建议采用与此类似的方法:

创建如下函数:

CREATE FUNCTION [SplitIntegers]
(
   @List      VARCHAR(MAX),
   @Delimiter CHAR(1)
)
RETURNS TABLE
AS
RETURN 
(     SELECT [Item] = CONVERT(INT, [Item]) 
      FROM
      ( 
        SELECT [Item] = x.i.value('(./text())[1]', 'VARCHAR(max)')
        FROM ( SELECT [XML] = CONVERT(XML, '<i>' + REPLACE(@List, @Delimiter, '</i><i>') + '</i>').query('.')
      ) AS [A] 
      CROSS APPLY [XML].nodes('i') AS x(i) ) AS [Y]
      WHERE [Item] IS NOT NULL
);

注意:提供的函数仅适用于INT类型。

“+yourString.Replace”,“+”应该可以添加第一个单引号,将所有coma+空格替换为单引号+coma+空格+单引号,然后添加最后一个单引号。请看一下:在比较之前,我将转换为整数。我认为加逗号是个难题,但我以前也做过类似的事情。只要在每个数字都是一个数字的情况下加一个空格就行了。“+yourString.Replace”,“+”应该可以加上第一个单引号,用单引号+coma+空格+单引号替换所有coma+空格,然后再加上最后一个单引号看看这个:我会在比较之前转换成整数。我认为加逗号是个难题,但我以前也做过类似的事情。只要在每个数字都是一个数字的地方加上一个空格也行。