private void onSaveCompleteHandler(List <LocationResultSet> results) { pbDumpExec.Invoke((MethodInvoker) delegate() { pbDumpExec.Value = pbDumpExec.Maximum; }); this.UseWaitCursor = false; lStatus?.Invoke((MethodInvoker) delegate() { lStatus.Text = "Save complete!"; tableRowCountHandler(-1); }); string errorsToOutput = ""; bool koble = true; int errorcounter = 0; foreach (LocationResultSet result in results) { if (!result.wasSuccessful) { errorcounter++; koble = false; errorsToOutput += result.errorMessage + "\n"; } } bStartDump?.Invoke((MethodInvoker) delegate() { bStartDump.Enabled = true; }); backuplocations = new List <firedumpdbDataSet.backup_locationsRow>(); firedumpdbDataSetTableAdapters.logsTableAdapter logAdapter = new firedumpdbDataSetTableAdapters.logsTableAdapter(); if (koble) { logAdapter.Insert(0, 1, "Dump was completed successfully." + results.ToString(), DateTime.Now, 0); MessageBox.Show("Dump was completed successfully.", "MySQL Dump", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { logAdapter.Insert(0, 1, "Saving to " + errorcounter + " out of " + results.Count + " save location(s) failed:\n" + errorsToOutput, DateTime.Now, 1); MessageBox.Show("Saving to " + errorcounter + " out of " + results.Count + " save location(s) failed:\n" + errorsToOutput, "MySQL Dump", MessageBoxButtons.OK, MessageBoxIcon.Warning); } dataGridView1.Invoke((MethodInvoker) delegate() { dataGridView1.Rows.Clear(); dataGridView1.Refresh(); }); }