2012-03-22 53 views
0

我正在使用Visual Studio 2010,TableAdapters,并在C#中编写我的代码。我写了一些数据填充代码后,正在冒险调试我的代码,并且正在查看我遇到的SQL问题。在这一点上,我想实现一些SQL重试代码来处理重试任何查询,如果他们由于各种原因超时。我可以在业务逻辑层实现它们,但是我会在所有调用TableAdapter的BLL方法中复制该代码。我相信我需要在TableAdapter级别甚至更高的地方执行此操作,因为我需要在大约30个左右不同的TableAdapter对应于不同数据的顺序。有没有人有任何代码实现将由所有TableAdapter运行的代码?我已经看到了扩展TableAdapter的示例代码,但我正在寻找更加集中的重试逻辑。使用ASP.Net TableAdapter时,哪里可以实现SQL重试逻辑?

回答

0

可以通过设置命令超时属性避免此问题= 0

SqlCommand.CommandTimeout 

或者,也可以把重试逻辑在2-3企图DAL层。

+0

我该如何将DAL层中的逻辑放在中心位置。当你说DAL层时,我正在考虑我有的TableAdapter集以及与它创建并添加到其中的sprocs相对应的一组方法。我将如何在一个地方重试逻辑,所有这些都会使用? – BuffDev1 2012-03-22 20:04:42

+0

首先,如果这只是Timeout Issue,那么设置Timeout = 0.否则,第二,在dal层函数中,把你的请求放在try catch中,try catch在while循环中。同时发送请求到数据库,在dal层,如果你得到错误,捕获它的sql错误号。现在基于这个错误号重复三次,直到你成功... – Pankaj 2012-03-22 20:10:16

+0

任何更新? – Pankaj 2012-03-23 10:11:55