2016-11-04 159 views
0

緩存的DataGridView行:如何我使用SQLite語句從這樣的數據庫中檢索數據從SQLite數據庫

SQLiteConnection sqlConnection; 
SQLiteCommand sqlCMD; 
SQLiteDataReader sqlReader; 
sqlConnection = new SQLiteConnection("Data Source=newlist.db;Version=3;New=False;Compress=True;"); 
sqlCMD = sqlConnection.CreateCommand(); 
sqlCMD.CommandText = "SELECT * FROM table_name"; 
sqlReader = sqlCMD.ExecuteReader(); 
while (sqlReader.Read()) 
{ 
    //do stuff 
} 

所以整個SQLite表裝入DataDridView(grid_list)我用下面的語句中sqlReader.Read()

grid_list.Rows.Add(); 
grid_list.Rows[index].Cells[0].Value = sqlReader.GetString(0); 
grid_list.Rows[index].Cells[1].Value = sqlReader.GetString(1); 
grid_list.Rows[index].Cells[2].Value = sqlReader.GetString(2); 

並且它導致期望的輸出,但是當涉及到大的文件,如約100 MB或以上,它使UI慢,所以我如何顯示在塊這些表,就像一個源代碼文本編輯器(例如, g:崇高文字3)。

因此,在總結: 如何通過塊從數據庫中顯示一個DataGridView行塊,而不是一次全部裝入了整個數據到內存

+0

使用[VirtualMode](https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.virtualmode(v = vs.110).aspx)。請參閱[這裏](https://msdn.microsoft.com/en-us/library/ms171621(v = vs.110).aspx)。 –

回答

0

發現一個Article完美地回答關於虛擬模式,同時使用SQLite這個問題數據庫作爲數據源,這篇文章帶有一個源代碼,它將幫助你在partice

而且我發現了另一個article這將有助於解決這個問題。

+0

在這篇文章中沒有關於'VirtualMode'的文字。雖然這種方法也適用。 –

+0

@AlexanderPetrov究竟爲什麼我選擇它 –