我无法弄清楚如何从我调用的SPROC获取返回的数据:
public string LoginParty(string UserName, string LoginPin)
{
var result = db.spPartyLogin(UserName, LoginPin);
return result.ToString; // I wish
}
我想知道如何检索我调用的任何SPROC的结果。在这种情况下,我只获得一个结果,一个电子邮件地址或如果凭据不正确,则为0 ......并且result.ToString
不起作用。
SPROC:
ALTER PROCEDURE [dbo].[spPartyLogin]
-- Add the parameters for the stored procedure here
@UserName varchar(50),
@LoginPin varchar(50)
AS
BEGIN
DECLARE @value varchar(50)
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Select statements for procedure here
SELECT @value = EmailAddress FROM Party
WHERE UserName = @UserName AND LoginPin = @LoginPin;
SELECT ISNULL(@value,0)
END
正如您所看到的,在这种情况下,我将返回EmailAddress或0.我想捕获返回的结果。我不知道有多少其他方法可以描述我想要做的事情......
答案 0 :(得分:0)
通常Libq2Sql会创建一个新类型并返回该类型的IEnumerable。由于您的单个结果行有一个没有名称的列,我不确定它会做什么。在调试器中检查您的结果,看看您有什么。如果EmailAddress不是整数,那么如果它为null,则不应使用整数0作为替换。你可以使用bkank字符串甚至允许它返回null。
如果在调试器中查看结果时看不到地址,请尝试将其声明为out参数或在结果中指定列名:
SELECT ISNULL(@value,'') AS EmailAddress
ALTER PROCEDURE spPartyLogin
@Username VARCHAR(50),
@LoginPin VARCHAR(50),
@EmailAddress VARCHAR(50) out
您需要删除并添加proc以使Linq2Sql查看更改并重新生成代码。