我在 C# 中有一个程序,它可以像这样与数据库一起工作:
while(record found)
{
SPEAKS RECORD OUT TO SPEAKER
DELETES RECORD
}
它工作正常,直到它用完记录。
我想要的是即使在数据库中没有找到记录后也继续扫描。当记录出现时,它应该执行逻辑。如何刷新数据库以便扫描新记录?
有任何想法吗?
在检查新记录之前,您可能需要等待一段时间。所以永远迭代并检查新记录。如果你有,照常进行。如果您没有记录,请等待(例如 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
}
}
所以你的程序不会永远尝试。
从您的伪代码看来,您运行了一个执行 SELECT 的 ADO 命令。您将像运行命令时一样迭代这些结果。它不是易失的数据结构。
因此,您将再次运行 SELECT 命令以查看自上次运行 SELECT 以来是否出现了任何新记录。