1

我想在 SQL Server 中一次存储多行。我采用了一种存储多行内容的列表数据类型。现在我想将此列表直接传递给 SQL Server。我不想使用 for 循环来一一插入值。如何将整个列表作为参数传递给我的存储过程?

4

2 回答 2

0

您可以使用逗号分隔的字符串,并在 sql 端解析它。这是最快的解决方案,因此您不会在 c# 端进行循环时打开连接。

于 2013-07-01T10:35:42.383 回答
-1

您可以使用Batch Updateor的概念,SQLBulkCopy也可以将 Array 作为 Parameter 传递给Command Object.

您还可以将XML格式的数据传递给SQL Server Stored Procedure.

或最简单的方法为插入创建多个附加字符串,如下所示:

 string sqlText = "INSERT INTO Person VALUES ( '" + txtPersonId1.Text.Trim() + "',' " +  txtPersonName1.Text + "'); "; 
    sqlText += "INSERT INTO Person VALUES ( '" + txtPersonId2.Text.Trim() + "',' " +  txtPersonName2.Text + "'); "; 
    sqlText += "INSERT INTO Person VALUES ( '" + txtPersonId3.Text.Trim() + "',' " +  txtPersonName3.Text + "'); "; 
    sqlText += "INSERT INTO Person VALUES ( '" + txtPersonId4.Text.Trim() + "',' " +  txtPersonName4.Text + "'); "; 

所有这些方法都在这里解释。

于 2013-07-01T10:58:38.147 回答