private void Generate(CommandType commandType) { try { Cursor = Cursors.WaitCursor; txtResult.Text = string.Empty; SaveSettings(); var fileRows = ParseDataContent(chkFirstLineHoldsColumnNames.Checked); var result = ResultCreator.GetResult(commandType, fileRows, MappedColumns, cboTableNameTarget.Text); txtResult.Text = result; lblResultCount.Text = $"{txtResult.ActiveTextAreaControl.TextArea.Document.TotalNumberOfLines} records generated at {DateTime.Now.ToString("HH:mm:ss")}"; SetShowState(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Generate", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Cursor = Cursors.Default; txtResult.Refresh(); } }
private void GenerateDatabase() { var skippedKeys = new[] { "dtproperties", "sandeslatt_user", "LogItem", "WebStat", "Log", "Song" }; try { Cursor = Cursors.WaitCursor; txtResult.Text = string.Empty; SaveSettings(); var count = 0; var tableNames = SqlParser.GetTablesOrderedForInsert(cboConnectionSource.SelectedValue.ToString()); // DELETE txtResult.Text += "-- First clear all tables in reverse order" + Environment.NewLine; for (var i = tableNames.Count - 1; i >= 0; i--) { var tableName = tableNames[i]; if (tableName.ContainsAny(skippedKeys)) { txtResult.Text += $"-- Skipped {tableName}" + Environment.NewLine; } else { txtResult.Text += $"DELETE FROM {tableName}" + Environment.NewLine; } } txtResult.Text += Environment.NewLine + Environment.NewLine; // INSERT foreach (var tableName in tableNames) { var fileRows = SqlParser.GetValues(cboConnectionSource.SelectedValue.ToString(), tableName, ""); if (tableName.ContainsAny(skippedKeys)) { txtResult.Text += $"-- Table {tableName} skipped" + Environment.NewLine; continue; } // Create column structs to satisfy ResultCreator var sqlColumns = SqlParser.GetColumns(cboConnectionTarget.SelectedValue.ToString(), tableName); var mappedColumns = sqlColumns.Select((x, i) => new ColumnMap(x, new List <FileColumn>() { new FileColumn { Index = i, Name = x.ColumnName } })).ToList(); var hasIdentity = sqlColumns.Any(x => x.IsIdentity); // Print result var result = ResultCreator.GetResult(CommandType.Insert, fileRows, mappedColumns, tableName); if (hasIdentity) { txtResult.Text += $"SET IDENTITY_INSERT {tableName} ON;" + Environment.NewLine; txtResult.Text += result + Environment.NewLine; txtResult.Text += $"SET IDENTITY_INSERT {tableName} OFF;" + Environment.NewLine + Environment.NewLine; } else { txtResult.Text += result + Environment.NewLine + Environment.NewLine; } count += fileRows.Count; } lblResultCount.Text = $"{count} records generated at {DateTime.Now.ToString("HH:mm:ss")}"; SetShowState(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Generate", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Cursor = Cursors.Default; txtResult.Refresh(); } }