如何将多个参数传递到SQL Server存储过程

时间:2013-10-21 15:03:17

标签: asp.net sql sql-server stored-procedures

我正在研究ASP.NET Web应用程序。在那里,我有一个编辑信息页面,有大约40个文本框。我需要更新数据库中的数据,因此我需要将所有40个字段中的值传递到数据库中。

我将40个参数传递给存储过程以更新数据库中的数据。我需要一些其他方法来传递这些参数。请建议如何将多个参数传递给存储过程。

是否有其他方法可以传递数据,或者只能在参数列表中写入所有内容吗?

此致 的Vivek

1 个答案:

答案 0 :(得分:1)

40个参数不应该是showstopper,但是如果你真的想要将更少的参数传递给存储过程,你可以考虑将40个值封装到存储过程的passing an XML argument(s) - 例如......

<booksdetail> 
  <isbn_13>800007890</isbn_13> 
  <isbn_10>07890B</isbn_10> 
  <image_url>http://www.whatever.com/Books/large/00/800007890.jpg</image_url> 
  <title>Some Title</title> 
  <description>The incredible story of....</description>
  -- ...
</booksdetail>

...传递给@bookDetail xml而不是传递给其中的值:

@isbn_13 varchar(13),
@isbn_10 varchar(10),
@image_url varchar(100),
@title varchar(100),
@description varchar(250),
-- ...

您仍然需要考虑存储过程中的40个值,但如果您的首选项是更小的存储过程签名,则此方法将实现同样的效果。