扫描数据库中的新记录

时间:2013-04-22 16:42:58

标签: c# sql

我在C#中有一个程序,它与数据库一样:

while(record found)
{
   SPEAKS RECORD OUT TO SPEAKER
   DELETES RECORD
}

在记录用完之前一切正常。

我想要的是即使在数据库中找不到记录之后也要继续扫描。 当记录出现​​时,它应该执行逻辑。如何刷新数据库以便扫描新记录?

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

在检查新记录之前,您可能需要等待一段时间。所以永远迭代并检查新记录。如果您有,请照常进行。如果您没有记录,请等待(例如2秒)并再试一次

while(true){
    if(record found){
        // SPEAKS RECORD OUT TO SPEAKER
        // DELETES RECORD
    }else{
        System.Threading.Thread.Sleep(2000); // sleep two seconds
    }
}

如果你没有在请求之间等待,那么你会因为不断要求新记录而遇到问题。

另一个问题是“永远迭代”部分。通常,您所做的不是永远迭代,而是限制您为读取新记录而连续尝试的次数:

int attempts = 0;
while(attempts < 3){
    attempt++;
    if(record found){
        // SPEAKS RECORD OUT TO SPEAKER
        // DELETES RECORD
        attempts=0; // reset attempts counter
    }else{
        System.Threading.Thread.Sleep(2000); // sleep two seconds
    }
}

所以你的程序不会永远尝试。

答案 1 :(得分:2)

从您的伪代码看起来您​​运行了一个执行SELECT的ADO命令。您将在命令运行时迭代这些结果。它不是一个易变的数据结构。

因此,您再次运行SELECT命令以查看自上次运行SELECT以来是否有任何新记录出现。