我在我的紧凑框架应用程序中使用 sqlite 来记录系统中的事件。我也在使用System.Data.SQLite。事件有时间戳来描述它发生的时间。我将此时间戳作为刻度存储在我的表中。除此列外,该表还包含另外 5 列整数/文本类型。下面是表模式
CREATE TABLE T1 (TimeStamp INTEGER, Col2 INTEGER, Col3 INTEGER, Col4 INTEGER,
Col5 INTEGER, Col6 TEXT, PRIMARY KEY(TimeStamp DESC));
我正在使用带有以下查询的 ADO 查询两个时间戳之间的数据
SELECT TimeStamp,Col1,Col2,Col3,Col4,Col5 FROM T1 WHERE TimeStamp
BETWEEN @startDate AND @endDate LIMIT 2000;
我正在将用户提供的时间戳转换为 Ticks,并将它们作为“@startDate”和“@endDate”的参数值发送。
在我执行了上面的查询之后,我开始使用while 循环遍历 SqLiteDataReader ,我发现这个 while 循环永远不会出现并继续无休止地执行。理想情况下,它应该在读取 2000 条记录后结束。下面是代码片段。
SQLiteDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
:
: Fill the data from column into Event class object
:
}
请让我知道是否有人遇到过同样的问题。
编辑:-经过调查,我发现这个问题出现在满载的系统上。我模拟了满载系统的环境并试了一下。