asp.net存储过程将多对数据插入到DB中

时间:2013-08-07 17:11:46

标签: c# asp.net-mvc stored-procedures insert

我有一个接受int [](userIDs)和int(groupID)作为参数的方法。然后它运行存储过程并将数据插入到DB

For example:
if userIDs=[1,2,3] and groupID=4, 
then I want the following data to be inserted into the DB
userID    groupID
1            4
2            4
3            4 

我有两个解决这个问题的方法。第一个是编写一个将单个记录插入DB的存储过程。在方法()中,我将循环遍历int []并调用存储过程n次

method()
for (int i =0; i< userID.length; i++){
    // call stored procedure to insert a single record
}

第二种解决方案是将int []和int作为参数传递给存储过程,并在存储过程中进行循环。

哪种方式更好的解决方案? (如果它的第二个解决方案更好,有人可以提供有关在存储过程中处理int []的指导)

3 个答案:

答案 0 :(得分:1)

您是否有充分的理由不想使用O / R映射器? 您的示例看起来像服务器/代码隐藏,您可以使用实体框架(或其他)来插入新值。 如果您不能使用它们,那么我会使用for(发布中的第2个)方法。但这很危险,因为你不在任何交易中。

您可以在此处开始实体框架调查:http://www.asp.net/entity-framework。 如果您出于任何原因无法使用EF,请考虑为您的sql命令使用transcation范围(请参阅http://msdn.microsoft.com/en-us/library/777e5ebh.aspx开始阅读)

答案 1 :(得分:0)

Geeeeeeeeeeeenerally说,这些东西的代码更快。你最好在你的数组C#方面进行迭代,然后调用存储过程来处理你的特定记录。

现在当然具体情况会发生变化,这听起来肯定是最好处理的。将int数组转换为数据表,然后可以有一些real fun ...

答案 2 :(得分:0)

如果您所做的只是向数据库中添加行,我认为不需要存储过程(除非这是DBA或策略的要求)。

只需遍历您的项目,然后使用ADO.NET或Entity Framework将条目添加到数据库中。