2013-10-18 33 views
1

我想參數傳遞給SQL查詢(在C#),但參數是文本塊中:如何插入一個文本查詢中的SQL參數

SqlCommand cmd = new SqlCommand(@"EXEC sp_helptext N'[email protected]';"); 
cmd.Parameters.AddWithValue("@spname", "StoredProcedureName"); 

如果我使用存儲過程名稱直接查詢它工作正常,但如果我傳遞參數這是行不通的。

有誰知道如何做到這一點correcty?

回答

1

你可以做

SqlCommand cmd = new SqlCommand("EXEC sp_helptext @spname"); 
cmd.Parameters.AddWithValue("@spname", "dbo.StoredProcedureName"); 

但使用

SqlCommand cmd = new SqlCommand("sp_helptext"); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.Parameters.AddWithValue("@objname", "dbo.StoredProcedureName"); 

是一個更好的選擇

+0

我已經嘗試它,不工作。我需要通過一個文本paremether到sp_helptext在 – mmarques

+0

這個解決方案將能正常工作,但我有一個很長的查詢和sp_helptext的執行是在查詢的midle的地方,我不能separatly執行它 – mmarques

+0

沒事,我做了一些修改我的查詢,您的第一個答案正常工作與它。由於podiluska – mmarques