2013-10-21 143 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個值,但是如果您的偏好是較小的存儲過程簽名,則此方法將實現同樣的效果。

相關問題