从两个逗号分隔的字符串参数更新SQL Server中的表

时间:2013-02-04 05:51:54

标签: c# sql-server-2008-r2

  

可能重复:
  Update a table from two comma separated parameter as input

我在前端有一个Gridview,其中Grid有两列:ID和Order,如下所示:

 ID        Order

 1           2
 2           4
 3           1
 4           3

订单栏是可编辑的。现在,如果我想更新订单并进行保存,我想将其存储到数据库中。我已将ID和Order存储为逗号分隔的字符串,如sID(1,2,3,4)和sOrder(2,4,1,3),并作为输入参数发送到SQL Server。通过存储过程如何更新到表中。

2 个答案:

答案 0 :(得分:0)

你可以创建一个 Function ,你的存储过程可以调用它来分割输入参数。

请参阅:How do I split a string so I can access item x?

答案 1 :(得分:0)

来自各个网站的消息来源:

DECLARE @sID nvarchar(max) = '1,2,3,4'
DECLARE @sOrder nvarchar(max) = '2,4,1,3'

DECLARE @Split char(1) = ','
DECLARE @xSID xml
DECLARE @xOrder xml

SELECT @xSID = CONVERT(xml,'<root><s>' + REPLACE(@sID, @Split,'</s><s>') + '</s></root>')
SELECT @xOrder = CONVERT(xml,'<root><s>' + REPLACE(@sOrder, @Split,'</s><s>') + '</s></root>')

SELECT [Value] = T.c.value('.','varchar(20)') FROM @xSID.nodes('/root/s') T(c) 
SELECT [Value] = T.c.value('.','varchar(20)') FROM @xOrder.nodes('/root/s') T(c)

@sID@sOrder替换为SP的参数。

必须补充一点,这个网站几乎回答了这个问题:Social MSDN