2013-10-21 112 views
-1

我正在研究ASP.NET Web应用程序。因为我有一个编辑信息页面,它有大约40个文本框。我需要更新数据库中的数据,所以我需要将所有40个字段的值传递到数据库中。如何将多个参数传递到SQL Server存储过程

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

是否有任何其他方式来传递数据,或者它是唯一可能的,写入所有参数列表?

问候, 维韦克

+1

你能分享你的代码吗? –

+0

您使用的是哪个版本的SQL Server? –

+2

添加40个参数有什么问题?如果你感觉特别懒,你可以使用sys.parameters系统表来更快地写代码:SELECT选项.Parameters.AddWithValue(“'+ Name +'” ,'+ STUFF(Name,1,1,'')+'TextBox.Text);' FROM sys.parameters WHERE Object_ID = OBJECT_ID(N'dbo.YourProcedureName');' – GarethD

回答

1

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

<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个值,但是如果您的偏好是较小的存储过程签名,则此方法将实现同样的效果。

相关问题