void item_Click(object sender, EventArgs e) { ToolStripMenuItem item = (ToolStripMenuItem)sender; string fileName = string.Empty; Action action = (Action)item.OwnerItem.Tag; Output output = (Output)item.Tag; try { string connectionString = Helper.FixConnectionString(this.Parent.Connection.ConnectionString, this.Parent.Connection.ConnectionTimeout); using (IRepository repository = new DBRepository(connectionString)) { var generator = new Generator(repository); using (ImportOptions imo = new ImportOptions(this.Parent.Name)) { imo.SampleHeader = generator.GenerateTableColumns(this.Parent.Name); imo.Separator = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator.ToCharArray()[0]; if (imo.ShowDialog() == DialogResult.OK) { switch (output) { case Output.Editor: // create new document ServiceCache.ScriptFactory.CreateNewBlankScript(Microsoft.SqlServer.Management.UI.VSIntegration.Editors.ScriptType.SqlCe); break; case Output.File: SaveFileDialog fd = new SaveFileDialog(); fd.AutoUpgradeEnabled = true; fd.Title = "Save generated database script as"; fd.Filter = "SQL Server Compact Script (*.sqlce)|*.sqlce|SQL Server Script (*.sql)|*.sql|All Files(*.*)|"; fd.OverwritePrompt = true; fd.ValidateNames = true; if (fd.ShowDialog() == DialogResult.OK) { fileName = fd.FileName; } break; default: break; } switch (action) { case Action.Csv: using (var reader = new CsvReader(imo.FileName)) { reader.ValueSeparator = imo.Separator; HeaderRecord hr = reader.ReadHeaderRecord(); if (generator.ValidColumns(this.Parent.Name, hr.Values)) { foreach (DataRecord record in reader.DataRecords) { generator.GenerateTableInsert(this.Parent.Name, hr.Values, record.Values); } } } break; default: break; } switch (output) { case Output.Editor: // insert SQL script to document EnvDTE.TextDocument doc = (EnvDTE.TextDocument)ServiceCache.ExtensibilityModel.Application.ActiveDocument.Object(null); doc.EndPoint.CreateEditPoint().Insert(generator.GeneratedScript); doc.DTE.ActiveDocument.Saved = true; break; case Output.File: if (!string.IsNullOrEmpty(fileName)) { System.IO.File.WriteAllText(fileName, generator.GeneratedScript); } break; case Output.Clipboard: Clipboard.Clear(); Clipboard.SetText(generator.GeneratedScript, TextDataFormat.UnicodeText); break; default: break; } } } } } catch (System.Data.SqlServerCe.SqlCeException sqlCe) { Connect.ShowErrors(sqlCe); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
void item_Click(object sender, EventArgs e) { ToolStripMenuItem item = (ToolStripMenuItem)sender; string fileName = string.Empty; Action action = (Action)item.OwnerItem.Tag; Output output = (Output)item.Tag; try { string connectionString = Helper.FixConnectionString(this.Parent.Connection.ConnectionString, this.Parent.Connection.ConnectionTimeout); using (IRepository repository = new DBRepository(connectionString)) { var generator = new Generator(repository); using (ImportOptions imo = new ImportOptions(this.Parent.Name)) { imo.SampleHeader = generator.GenerateTableColumns(this.Parent.Name); imo.Separator = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator.ToCharArray()[0]; if (imo.ShowDialog() == DialogResult.OK) { switch (output) { case Output.Editor: // create new document ServiceCache.ScriptFactory.CreateNewBlankScript(Microsoft.SqlServer.Management.UI.VSIntegration.Editors.ScriptType.SqlCe); break; case Output.File: SaveFileDialog fd = new SaveFileDialog(); fd.AutoUpgradeEnabled = true; fd.Title = "Save generated database script as"; fd.Filter = "SQL Server Compact Script (*.sqlce)|*.sqlce|SQL Server Script (*.sql)|*.sql|All Files(*.*)|"; fd.OverwritePrompt = true; fd.ValidateNames = true; if (fd.ShowDialog() == DialogResult.OK) { fileName = fd.FileName; } break; default: break; } switch (action) { case Action.Csv: using (var reader = new CsvReader(imo.FileName)) { reader.ValueSeparator = imo.Separator; HeaderRecord hr = reader.ReadHeaderRecord(); if (generator.ValidColumns(this.Parent.Name, hr.Values)) { int i = 1; foreach (DataRecord record in reader.DataRecords) { generator.GenerateTableInsert(this.Parent.Name, hr.Values, record.Values, i); i++; } } } break; default: break; } switch (output) { case Output.Editor: // insert SQL script to document EnvDTE.TextDocument doc = (EnvDTE.TextDocument)ServiceCache.ExtensibilityModel.Application.ActiveDocument.Object(null); doc.EndPoint.CreateEditPoint().Insert(generator.GeneratedScript); doc.DTE.ActiveDocument.Saved = true; break; case Output.File: if (!string.IsNullOrEmpty(fileName)) { System.IO.File.WriteAllText(fileName, generator.GeneratedScript); } break; case Output.Clipboard: Clipboard.Clear(); Clipboard.SetText(generator.GeneratedScript, TextDataFormat.UnicodeText); break; default: break; } } } } } catch (System.Data.SqlServerCe.SqlCeException sqlCe) { Connect.ShowErrors(sqlCe); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }