SqlCipher特有的行为

时间:2014-05-19 07:33:34

标签: c# sqlite

我正在使用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";/

检索正确的记录。

0 个答案:

没有答案