我正在使用SqliteCipher for Windows。
我在C#Windows窗体应用程序中使用它。我的代码有点像
cmd.CommandText = "SELECT rcno from blockftins where status='0' and rcno >" + lastrcno + " and rcno <=" + goupto + " Limit 1";
var readerftin = cmd.ExecuteReader();
while (readerftin.Read())
{
//starts from a specific record
lastrcno = readerftin.GetInt32(0);
}
该表有17391条记录。当我的lastrcno设置为17390且goupto为17391时,它无法检索任何记录。
但是如果我通过在sqlite命令提示符下的Textvisualier中捕获它来运行结果代码,我得到lastrecno为17391,这是正确的答案。
从Textvisualized中捕获的代码是 -
SELECT rcno
FROM blockftins
WHERE status = '0' AND rcno > 17390 AND rcno <=17391 LIMIT 1
出现这种特殊行为的原因是什么?
似乎问题在于最后两条记录 -
cmd.CommandText = "SELECT rcno from blockftins where status='0' and rcno <=" + 17390 + " Limit 1";/
cmd.CommandText = "SELECT rcno from blockftins where status='0' and rcno <=" + 17391 + " Limit 1";/
没有记录。 然而
cmd.CommandText = "SELECT rcno from blockftins where status='0' and rcno <=" + 17389 + " Limit 1";/
检索正确的记录。