存储过程在LINQ中返回varchar

时间:2010-08-26 22:01:14

标签: sql-server linq-to-sql

我想知道在SQL中是否可以从存储过程返回varchar值,我看到的大部分示例返回值都是int

proc中的示例

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

调用asp.net 更新:

错误:     将varchar值'Development'转换为数据类型int时转换失败。

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

}

2 个答案:

答案 0 :(得分:5)

不,除了使用RETURN语句的int之外,你不能返回任何内容。 您需要使用OUTPUT参数。它们更灵活。

e.g。

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

更新
有关如何检索输出参数的示例,请参阅this article

答案 1 :(得分:0)