2010-08-26 88 views
0

我想知道如果在SQL是有可能從存儲過程返回一個varchar值,大部分實施例I所看到的返回值是內的一個int存儲過程返回VARCHAR在LINQ

實施例PROC

declare @ErrorMessage varchar(255) if @TestFlag = 0 set @ErrorMessage = 'Test' 
return @ErrorMessage 

呼籲更新asp.net :

錯誤:轉換爲varchar值 '發展' 爲int數據類型時 轉換失敗。

using (DataContextDataContext dc = conn.GetContext()) 
{ 
    string serverName = "" 
    var result = dc.spGetServerName(ref serverName);      
    return result.ToString(); 

} 

回答

5

不,你不能返回任何東西,但使用RETURN語句,一個int。 您需要改爲使用OUTPUT參數。他們更靈活。

例如

CREATE PROCEDURE dbo.ExampleSproc 
    @OutParam VARCHAR(10) OUTPUT 
AS 
SET @OutParam = 'Test' 
... 
GO 

更新:
有關如何檢索輸出參數的例子,見this article

+0

我該如何調用storproc來獲取輸出? – 2010-08-26 22:15:59

+0

我已更新我的問題。 – 2010-08-26 22:17:17

+0

@Nisar Khan - 請參閱我的問題 – AdaTheDev 2010-08-26 22:36:20