使用存储过程从数据库获取数据的问题

时间:2015-11-11 14:02:22

标签: c# linq stored-procedures linq-to-sql sql-server-2008-r2

我是新来的,但是几年后我一直关注社区,而且我总能找到我想要的东西。现在我有一个特定的请求,我在这里和网上搜索但我还没有找到任何答案,希望有人在这里可以帮助我。

我正在使用此存储过程从SQL Server数据库中获取数据:

ALTER PROCEDURE dbo.Lots_GetLotsData
AS
    SET NOCOUNT ON
    SELECT * FROM Lots

这个只更新表中的一个项目

ALTER PROCEDURE dbo.Lots_CloseLot
(
    @Lot_Code varchar(12)
)
AS
    SET NOCOUNT ON

    UPDATE [Lots] SET [Closed] = 1
    WHERE [LotCode] = @Lot_Code

在我的c#程序中,我正在使用Linq-to-SQL datacontext,我将所有存储过程都调用。在代码中,我调用" Lots_CloseLot"存储过程并且它正确执行,但是当我调用" Lots_GetLotsData"存储过程,我得到旧值(即使查看数据库已更新数据)。如果我关闭并重新开始我的应用程序,我会得到正确的结果。

如果你从VS或SSMS调用存储过程,我会得到正确的结果(特别是" GetLotsData"存储过程)。

有人能帮我找到错误的地方吗?

提前致谢

[编辑]

我在调用" CloseLot"之后尝试重新创建连接。存储过程,它的工作原理,似乎连接因某种原因而中断。奇怪的是,如果我不重新创建连接,那么" GetLotsData"调用" CloseLot"后,程序无法正常工作程序,但我可以添加数据,我可以获得我添加的新数据。如果正确的解决方法是重新建立连接,那么它很好,但我想了解问题所在,并在可能的情况下解决问题。

0 个答案:

没有答案