用SQLite DataBase填充DataGridView數據我認爲簡單的方法是使用SQLiteDataAdapter填充表並使表格成爲DataGridView的DataSource,如下所示:使用SQLiteDataAdapter與SQLiteDataReader填充DataGridView的差異
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles cdmDataTable.Click
Dim conn = New SQLiteConnection("Data Source=MyDataBase.sqlite;Version=3")
Try
Using (conn)
conn.Open()
Dim sql = "SELECT * FROM users"
Dim cmdDataGrid As SQLiteCommand = New SQLiteCommand(sql, conn)
Dim da As New SQLiteDataAdapter
da.SelectCommand = cmdDataGrid
Dim dt As New DataTable
da.Fill(dt)
DataGridView1.DataSource = dt
Dim readerDataGrid As SQLiteDataReader = cmdDataGrid.ExecuteReader()
End Using
Catch ex As Exception
MsgBox(ex.ToString())
End Try
使用SQLiteDataReader而不是SQLiteDataAdapter有什麼優勢嗎?
使用適配器更容易,但SQLiteDataAdapter內部使用SQLiteDataReader填充表。使用閱讀器並填充網格會減少一個循環。如果您沒有性能問題,請使用適配器。 (或者使用帶有ORM的用戶對象列表) – Steve
@Steve實際上,使用簡單的SQL SELECT和no where子句,DA比DataReader更快。這看起來很奇怪,差別很小,但是一致(150k行約0.5秒)。 <5k行很難測量,所以不要擔心。 – Plutonix
事實上,我不再直接使用DataAdapter或DataReader,這是很多時間。我真的更喜歡使用像Dapper這樣的Micro ORM。此外,我認爲最好將性能優化集中在減少檢索的行數和列數以及適當的索引上。 – Steve