我是新来的,但是几年后我一直关注社区,而且我总能找到我想要的东西。现在我有一个特定的请求,我在这里和网上搜索但我还没有找到任何答案,希望有人在这里可以帮助我。
我正在使用此存储过程从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"后,程序无法正常工作程序,但我可以添加数据,我可以获得我添加的新数据。如果正确的解决方法是重新建立连接,那么它很好,但我想了解问题所在,并在可能的情况下解决问题。