///Событие. Кнопки редактора запросов private void TbSQL1Click(object sender, EventArgs e) { string indexstr = tabControlSQL1.SelectedTab.Tag.ToString(); //FastColoredTextBox f; //var textSQL11 = tabControSQL.Controls.Find("sdF"). var textSQL = (FastColoredTextBox)tabControlSQL1.Controls.Find("textSQL" + indexstr, true).First(); var dgvSQL = (DataGridViewFBA)tabControlSQL1.Controls.Find("dgvSQL" + indexstr, true).First(); //textSQL1 var fastColoredTextBoxSQL = (FastColoredTextBoxNS.FastColoredTextBox)tabControlSQL1.Controls.Find("fastColoredTextBoxSQL" + indexstr, true).First(); if ((sender == textSQL) && (textSQL.Text == "")) { textSQL.AppendText("SELECT * FROM fbaEnterHist"); } //Выполнить запрос. if (sender == tbSQL1) { var tbSQLResult = (TextBox)tabControlSQL1.Controls.Find("tbSQLResult" + indexstr, true).First(); string SQL = textSQL.SelectedText; if (SQL == "") { SQL = textSQL.Text; } string ExecTextSQL = SQL; if (cb_MSQL_SQL.Checked) { ExecTextSQL = sys.Parse(SQL); } DateTime DateTime1 = DateTime.Now; sys.RefreshGrid(GetDirection(), dgvSQL, ExecTextSQL); tbSQLResult.Text = " Rows: " + dgvSQL.RowCount + " Execute time: " + sys.GetTimeDiff(DateTime1, DateTime.Now); } //Распарсить запрос. if (sender == tbSQL7) { var tbSQLResult = (TextBox)tabControlSQL1.Controls.Find("tbSQLResult" + indexstr, true).First(); string SQL = textSQL.SelectedText; if (SQL == "") { SQL = textSQL.Text; } string ExecTextSQL = SQL; DateTime DateTime1 = DateTime.Now; if (cb_MSQL_SQL.Checked) { ExecTextSQL = sys.Parse(SQL); } fastColoredTextBoxSQL.Text = ExecTextSQL; tbSQLResult.Text = " Execute time: " + sys.GetTimeDiff(DateTime1, DateTime.Now); } //Очистка редактора запросов if (sender == tbSQL2) { textSQL.Clear(); } //Export to Excel if (sender == cm4) { dgvSQL.ExportToExcel(); } //Новая вкладка. //В процедуру передаются компоненты с перовой вкладки (которая никогда не удаляется) //чтобы на их примере сделать новую вкладку. //Можно было бы и без них - но тогда пришлось бы каждый раз в коде изменять свойства компонентов. if (sender == tbSQL3) { TabControlPageAdd(tabControlSQL1, splitContainerSQL1, textSQL, pnlResultSQL1, tbSQLResult1, dgvSQL1, cmGrid, ref TabIndexSQL); } //Удалить вкладку if ((sender == tbSQL4) && (tabControlSQL1.TabPages.Count > 1)) { tabControlSQL1.SelectedTab.Dispose(); } //Открыть из CSV. if (sender == tbSQL5) { string FileName = ""; string ErrorMes = ""; const bool ErrorShow = true; const string InitialDirectory = ""; if (!FBAFile.OpenFileName("", "CSV Files|*.csv|All Files|*.*", InitialDirectory, ref FileName)) { return; } System.Data.DataTable DT; sys.CSVToDataTable(out DT, FileName, out ErrorMes, ErrorShow); dgvSQL.DataSource = DT; } //Сохранить текст запроса. if (sender == tbSQL6) { string FileName = ""; if (!FBAFile.SaveFileName("Save SQL", "SQL Files|*.sql|All Files|*.*", "", 0, ref FileName)) { return; } FBAFile.FileWriteTextObject(textSQL, FileName, true); } //Copy to Remote Database if (sender == cm1) { string SQL; string ServerTableName = "MyTableName"; //if (Var.con.serverTypeRemote == ServerType.MSSQL) ServerTableName = "dbo.MyTableName"; if (!sys.InputValue("Имя таблицы на сервере", "Имя таблицы", SizeMode.Small, ValueType.String, ref ServerTableName)) { return; } var DT = (DataTable)dgvSQL.DataSource; if (Var.con.serverTypeRemote == ServerType.MSSQL) { //Способ Var.con.MSSQLCopyTableToServer работает быстрее для MSSQL, чем sys.GetTextTableToDatabase. Var.con.MSSQLCopyTableToServer(DT, ServerTableName); } if (Var.con.serverTypeRemote == ServerType.Postgre) { SQL = sys.GetTextTableToDatabase(Var.con.serverTypeRemote, ServerTableName, DT, true); sys.Exec(DirectionQuery.Remote, SQL); } sys.SM("Таблица " + ServerTableName + " загружена на сервер " + Var.con.serverType, MessageType.Information); } //Copy to Local Database if (sender == cm2) { string ServerTableName = "MyTableName"; if (!sys.InputValue("Имя таблицы на сервере", "Имя таблицы", SizeMode.Small, ValueType.String, ref ServerTableName)) { return; } var DT = (DataTable)dgvSQL.DataSource; string SQL = sys.GetTextTableToDatabase(ServerType.SQLite, ServerTableName, DT, true); Var.conLite.Exec(SQL); sys.SM("Таблица " + ServerTableName + " сохранена в локальной базе данных SQLite", MessageType.Information); } //Export to CSV if (sender == cm3) { string FileName = "Table_" + sys.GetDate4FileName(DateTime.Now) + ".csv"; var DT = (DataTable)dgvSQL.DataSource; const string InitialDirectory = ""; if (!FBAFile.SaveFileName("Import object", "XLS Files|*.xls|All Files|*.*", InitialDirectory, 0, ref FileName)) { return; } if (!sys.DataTableToCSV(DT, FileName, true)) { return; } //sys.SM("Таблица сохранена в файл: " + FileName, MessageType.Information); //sys.FileRunSimple(FileName); FBAFile.FileRunNotebook(FileName); } //Export to XLS if (sender == cm4) { var DT = (DataTable)dgvSQL.DataSource; if (!sys.DataTableToExcel(DT)) { return; } sys.SM("Таблица выгружена в файл XLS", MessageType.Information); } }