private void Update(string key_value) { GetKeyAttrib(); DataBase db; MySqlCommand command; string query; if (update_step == 0) { ShowOptionalTable(key_value, "update"); AddDefaultRow(); } else { db = new DataBase(currentDB); string values = ""; string temp = ""; string temp2; string[] data = new string[2]; for (int i = 0; i < dataTable.Columns.Count; i++) { temp = Optional_table[i, 1].Value.ToString(); if (dataTable.Columns[i].DataType.ToString() == "System.DateTime") { temp = $"{temp.Substring(0, 10)}"; data = temp.Split('.'); temp2 = data[2]; data[2] = data[0]; data[0] = temp2; temp = $"\"{data[0]}.{data[1]}.{data[2]}\""; } if (dataTable.Columns[i].DataType.ToString() == "System.String") { temp = $"\"{temp}\""; } values += $"`{dataTable.Columns[i].ColumnName.Trim('*')}`={temp},"; } values = values.Trim(','); query = $"UPDATE `{get_table.Text}` SET {values} WHERE {attr_name} = {key_value}"; db.OpenConnection(); command = new MySqlCommand(query, db.GetConnection()); if (command.ExecuteNonQuery() == 1) { MessageBox.Show("Запись успешно обновлена"); dataTable.Rows.Clear(); Optional_table.DataSource = dataTable; InputKeyShow(); update_step++; } else { MessageBox.Show(""); dataTable.Rows.Clear(); InputKeyShow(); } dataGridView.DataSource = GetTable(db, get_table.Text); db.CloseConnection(); } }
private void ShowOptionalTable(string key_value, string func) { GetKeyAttrib(); DataBase db; MySqlCommand command; MySqlDataReader reader; string query; query = $"SELECT * FROM {get_table.Text} WHERE {attr_name} = {key_value}"; db = new DataBase(currentDB); command = new MySqlCommand(query, db.GetConnection()); db.OpenConnection(); reader = command.ExecuteReader(); try { DataRow row; row = dataTable.NewRow(); if (reader.HasRows != false) { while (reader.Read()) { for (int i = 0; i < dataTable.Columns.Count; i++) { row[$"{dataTable.Columns[i].ColumnName}"] = reader.GetValue(i); } } dataTable.Rows.Add(row); Optional_table.DataSource = dataTable; reader.Close(); db.CloseConnection(); if (func == "delete") { delete_step++; } else { update_step++; } InputKeyHide(); MessageBox.Show("Выбрана следующая запись, для продолжения нажмите Далее"); } else { MessageBox.Show("Запись не найдена"); if (func == "delete") { delete_step = 0; } else { update_step = 0; } } } catch { MessageBox.Show("Ой! Что-то пошло не так!"); } }
private void Insert() { //char kavichka = '"'; string query = $"SELECT attribute.Attribute_Name, attribute.Is_Key FROM `attribute` INNER JOIN `table` ON (`attribute`.Table_ID = `table`.Table_ID) WHERE `table`.Name = \"{get_table.Text}\""; DataBase db = new DataBase("prime_db"); MySqlCommand command = new MySqlCommand(query, db.GetConnection()); db.OpenConnection(); MySqlDataReader reader = command.ExecuteReader(); attr_name = ""; while (reader.Read()) { attr_name += "`" + reader.GetValue(0).ToString() + "`,"; } attr_name = attr_name.Trim(','); db.CloseConnection(); db = new DataBase(currentDB); try { db.OpenConnection(); string values = ""; string temp; string temp2; string[] data = new string[2]; for (int i = 0; i < Optional_table.Columns.Count; i++) { temp = Optional_table.Rows[0].Cells[i].Value.ToString(); if (dataTable.Columns[i].DataType.ToString() == "System.DateTime") {//values += $"\"{DateTime.Parse(temp).ToString("d")}\","; temp = $"{temp.Substring(0, 10)}"; data = temp.Split('.'); temp2 = data[2]; data[2] = data[0]; data[0] = temp2; temp = $"\"{data[0]}.{data[1]}.{data[2]}\""; } if (dataTable.Columns[i].DataType.ToString() == "System.String") { temp = $"\"{temp}\""; } values += $"{temp},"; } values = values.Trim(','); query = $"INSERT INTO `{get_table.Text}` ({attr_name}) VALUES ({values});"; command = new MySqlCommand(query, db.GetConnection()); if (command.ExecuteNonQuery() == 1) { MessageBox.Show("Запись успешно добавлена"); dataGridView.DataSource = GetTable(db, get_table.Text); dataTable.Rows.Clear(); AddDefaultRow(); } else { MessageBox.Show("Ой! Что-то пошло не так!"); } db.CloseConnection(); } catch (MySqlException) { MessageBox.Show("Данное значение ключевого атрибута уже существует в таблице. Введите уникальное значение."); } catch (Exception ex) { MessageBox.Show("ERROR:" + ex.Message); } }