ich Daten aus einer Tabelle in einer SQLite3 Datenbank in eine Listview lese den Code untenImplement Fortschrittsbalken auf SQLite-Datenbank lesen C#
Im Moment verwende ich die Aufzeichnungen an Begrenzung nur 200 anzuzeigen, wie sie alle Anzeigen dauert viel zu lange. (Einige 30.000 Datensätze)
Ich möchte eine Option geben, um alle Datensätze anzuzeigen und wenn diese Option ausgewählt ist, um jeden Datensatz laden zu können.
Wie gesagt, es dauert eine ganze Weile und ich würde gerne einen Fortschrittsbalken verwenden, um den Status anzuzeigen.
Ich habe noch nie einen Fortschrittsbalken verwendet, also weiß ich nicht, wie sie funktionieren. Wäre es möglich, meinem Code einige zusätzliche Codezeilen hinzuzufügen, um die Verwendung eines Fortschrittsbalkens zu ermöglichen, oder müsste ich einen Code einfügen und einen Hintergrund-Worker verwenden?
private void cmdReadDatabase_Click(object sender, EventArgs e)
{
listView4.Columns.Add("Row1", 50);
listView4.Columns.Add("Row2", 50);
listView4.Columns.Add("Row3", 50);
listView4.Columns.Add("Row4", 50);
listView4.Columns.Add("Row5", 50);
listView4.Columns.Add("Row6", 50);
listView4.Columns.Add("Row7", 50);
try
{
string connectionPath = Path.Combine(@"C:\", @"temp\");
SQLiteConnectionStringBuilder csb = new SQLiteConnectionStringBuilder();
csb.DataSource = Path.Combine(connectionPath, "database.db");
SQLiteConnection connection = new SQLiteConnection(csb.ConnectionString);
connection.Open();
// Query to read the data
SQLiteCommand command = connection.CreateCommand();
string query = "SELECT * FROM table_name LIMIT 200 ";
command.CommandText = query;
command.ExecuteNonQuery();
SQLiteDataAdapter dataAdaptor = new SQLiteDataAdapter(command);
DataSet dataset = new DataSet();
dataAdaptor.Fill(dataset, "dataset_name");
// Get the table from the data set
DataTable datatable = dataset.Tables["dataset_name"];
listView4.Items.Clear();
// Display items in the ListView control
for (int i = 0; i < datatable.Rows.Count; i++)
{
DataRow datarow = datatable.Rows[i];
if (datarow.RowState != DataRowState.Deleted)
{
// Define the list items
ListViewItem lvi = new ListViewItem(datarow["Row1"].ToString());
lvi.SubItems.Add(datarow["Row2"].ToString());
lvi.SubItems.Add(datarow["Row3"].ToString());
lvi.SubItems.Add(datarow["Row4"].ToString());
lvi.SubItems.Add(datarow["Row5"].ToString());
lvi.SubItems.Add(datarow["Row6"].ToString());
lvi.SubItems.Add(datarow["Row7"].ToString());
// Add the list items to the ListView
listView4.Items.Add(lvi);
}
}
connection.Close();
}
catch(SQLiteException ex)
{
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK);
}
}
Sie führen Ihre Abfrage zweimal aus, Sie benötigen diesen Zeilenbefehl nicht.ExecuteNonQuery() ;. dataAdaptor.Fill (Dataset, "Dataset_Name"); Will die Abfrage ausführen – Jmyster
@Jmyster Vielen Dank für das zeigen, dass – Daniel