从Web应用程序向SQL Server表插入多行 - 最佳实践

时间:2011-09-14 13:11:48

标签: .net sql-server-2005

将数据从.NET Web表单写入SQL Server 2005的最佳方法是什么?

我的网络应用程序动态创建表单,每个表单上的字段数量可以从几个到接近一百个。

我目前正在这样做的方法是将提交的表单数据(使用Request.Form.AllKeys方法)收集到数据表中,打开sql连接并为数据表中的每一行调用相同的存储过程在再次关闭连接之前。这似乎是一种低效的做事方式。

我知道我可以将SqlBulkCopy用于此目的,但我失去了存储过程给我的功能(例如,将不同命令链接在一起的能力)。

有人有任何建议吗?

3 个答案:

答案 0 :(得分:2)

你可以将数据作为分隔列表传递并拆分(参见How do I split a string so I can access item x?) - 虽然仍然不是世界上最有效的东西,但它可能比调用数百个程序更有效倍。

在SQL Server 2008中,您将能够使用表值参数。

答案 1 :(得分:0)

我建议你看一下DataBinding和Data控件。

虽然他们会像你现在那样“在幕后”做同样的事情,但至少可以通过使用框架来提高可维护性和优化代码的好处。

答案 2 :(得分:0)

您可以构造一个插入多个记录的插入语句。当然,使用存储过程执行此操作会很困难。如果不了解您正在做的事情,很难说使用存储过程是否有任何特殊优势。生活充满了权衡。