我在我的壓縮框架應用程序中使用sqlite來記錄系統中的事件。我也使用System.Data.SQLite。該事件有時間戳來描述它發生在什麼時間。我將這個時間戳存儲爲我的表格中的Ticks。與該列一起,該表格還包含另外5列整數/文本類型。下面是表模式Compact Framework 3.5上的System.Data.SQLite問題
CREATE TABLE T1 (TimeStamp INTEGER, Col2 INTEGER, Col3 INTEGER, Col4 INTEGER,
Col5 INTEGER, Col6 TEXT, PRIMARY KEY(TimeStamp DESC));
我下面的查詢
SELECT TimeStamp,Col1,Col2,Col3,Col4,Col5 FROM T1 WHERE TimeStamp
BETWEEN @startDate AND @endDate LIMIT 2000;
我把由用戶蜱給出的時間戳和發送它們作爲參數查詢使用ADO兩個時間戳記之間的數據'@startDate'和'@endDate'的值。
當我執行上面的查詢,然後我開始迭代SqLiteDataReader使用while循環那裏我發現這個while循環永遠不會出來,並繼續無休止地執行。理想情況下,在閱讀2000條記錄後應該結束 。 以下是代碼片段。
SQLiteDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
:
: Fill the data from column into Event class object
:
}
請讓我知道是否有人面臨同樣的問題。
編輯: -調查後,我發現,這個問題出現了滿負荷的系統上。我模擬了 滿載系統的環境並嘗試了它。
您可以創建一個完整的示例程序生成的數據和查詢出來的?這將有所幫助。你是否也在sqlite終端中嘗試過相同的查詢? – devshorts
是的,我試着在sqlite終端查詢;有效。 – Omkar