private void едактор_Добавить_Click(object sender, EventArgs e) { Универсальная_форма ед_форма = new Универсальная_форма("Добавление записи", Сетка.Columns); if (ед_форма.ShowDialog() == System.Windows.Forms.DialogResult.OK) //Если диалог заканчивается ОК то: { //Создаются два динамически изменяемых массива "Поле" и "Значение" содержащих значения типа string : List <string> Поле = new List <string>(); List <string> Значение = new List <string>(); for (int i = 0; i < Сетка.ColumnCount; i++) { Поле.Add(string.Format("`{0}`", Сетка.Columns[i].Name)); //Заполнение массива "Поле"названиями полей текущей таблицы Значение.Add(Преобразование_текста(ед_форма.ед_данных[i].Text, Сетка.Columns[i].ValueType)); // Заполнение массива Значения } string Запрос_на_добавление = String.Format("INSERT INTO `{0}` ({1}) VALUES ({2})", Выбранная_таблица, String.Join(", ", Поле.ToArray()), String.Join(", ", Значение.ToArray())); Команда.CommandText = Запрос_на_добавление; Команда.Connection = Подключение_к_БД; Команда.ExecuteNonQuery(); int Строка = Сетка.SelectedRows[0].Index; Загрузить_данные(); Сетка.ClearSelection(); } ед_форма.Dispose(); }
private void едактор_Редактировать_Click(object sender, EventArgs e) { Универсальная_форма ед_форма = new Универсальная_форма("Редактирование записи", Сетка.Columns, Сетка.SelectedRows[0]); if (ед_форма.ShowDialog() == System.Windows.Forms.DialogResult.OK) { //процедура редактирования записей List <string> set = new List <string>(); List <string> where = new List <string>(); for (int i = 0; i < Сетка.ColumnCount; i++) { if (Сетка.SelectedRows[0].Cells[i].Value.ToString() != ед_форма.ед_данных[i].Text) { set.Add(String.Format("`{0}` = {1}", Сетка.Columns[i].Name, Преобразование_текста(ед_форма.ед_данных[i].Text, Сетка.Columns[i].ValueType))); } where.Add(Преобразование_текста(Сетка.Columns[i].Name, Сетка.SelectedRows[0].Cells[i].Value, Сетка.Columns[i].ValueType)); } string Запрос = String.Format("UPDATE `{0}` SET {1} WHERE {2}", Выбранная_таблица, String.Join(", ", set.ToArray()), String.Join(" AND ", where.ToArray())); if (set.Count > 0) { Команда.CommandText = Запрос; Команда.Connection = Подключение_к_БД; Команда.ExecuteNonQuery(); int Строка = Сетка.SelectedRows[0].Index; Загрузить_данные(); Сетка.ClearSelection(); Сетка.Rows[Строка].Selected = true; } } ед_форма.Dispose(); }
private void едактор_Удалить_Click(object sender, EventArgs e) { string окончание = "ей"; if (Сетка.SelectedRows.Count % 10 == 1)//для чисел с окончанием на 1: 11 21 31... { окончание = "ь"; } if ((Сетка.SelectedRows.Count % 10 >= 2 && Сетка.SelectedRows.Count % 10 <= 4))//для чисел с окончанием на (от 2 до 4): 12 22 32...13 23 33...14 24 34... { окончание = "и"; } if ((Сетка.SelectedRows.Count >= 5) && (Сетка.SelectedRows.Count <= 20)) { окончание = "ей"; } if (MessageBox.Show(String.Format("Вы уверены что хотите удалить {0} запис{1}?", Сетка.SelectedRows.Count, окончание), "Внимание!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK) { //процедура удаления записей List <string> where = new List <string>(); for (int i = 0; i < Сетка.ColumnCount; i++) { where.Add(Преобразование_текста(Сетка.Columns[i].Name, Сетка.SelectedRows[0].Cells[i].Value, Сетка.Columns[i].ValueType)); } string запрос = String.Format("DELETE FROM `{0}` WHERE {1}", Выбранная_таблица, String.Join(" AND ", where.ToArray())); Команда.CommandText = запрос; Команда.Connection = Подключение_к_БД; Команда.ExecuteNonQuery(); Загрузить_данные(); Сетка.ClearSelection(); } }