当我只想要一个时,Linq到SQL SP正在返回多个记录集!

时间:2009-11-09 16:02:22

标签: c# sql-server linq-to-sql

您好我有以下SP,但是当我使用LINQ to SQL时,它会生成2个多个记录集。为了我的理智,我试图弄清楚存储过程中的内容是什么,并且只想返回一个记录集...可以有任何帮助吗?

    ALTER PROCEDURE [dbo].[CheckToken] 
        @LoginId int
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;

        DECLARE @failures INT

        SET @failures = (SELECT COUNT(loginid) FROM auditerrorcode WHERE 
                    errorid = 1012 AND loginid = @loginid
                    AND datecreated >  DATEADD(hh, -1, getdate())
                )


        IF @failures > 10 UPDATE [login] SET [IsDisabled]=1 WHERE loginid = @loginid

        SELECT * FROM [Login] WHERE LoginId = @LoginId

END

2 个答案:

答案 0 :(得分:0)

单独执行您的过程并排除您没有获得两行,因为您传入的ID返回了两行。在SQL Managment Studio中执行此操作

EXEC dbo.CheckToken 999

确保使用从.NET代码调用的相同@LoginID。

答案 1 :(得分:0)

抱歉伙计......

我再次查看生成的DBML文件,并删除了定义了多个结果集的CheckToken方法。然后我重新生成了,现在我得到了我的预期,一个记录集

看起来我对SP所做的改进是有效的。