public override bool Save() { string sql; if (NewItem) { sql = "INSERT INTO models (name, mark_id) " + "VALUES (@name, @mark_id)"; } else { sql = "UPDATE models SET name = @name, mark_id = @mark_id WHERE id = @id"; } logger.Info("Запись модели..."); QSMain.CheckConnectionAlive(); try { MySqlCommand cmd = new MySqlCommand(sql, QSMain.connectionDB); cmd.Parameters.AddWithValue("@id", Itemid); cmd.Parameters.AddWithValue("@name", entryName.Text); cmd.Parameters.AddWithValue("@mark_id", DBWorks.ValueOrNull(Mark_id > 0, Mark_id)); cmd.ExecuteNonQuery(); logger.Info("Ok"); return(true); } catch (Exception ex) { QSMain.ErrorMessageWithLog("Ошибка записи модели!", logger, ex); } return(false); }
public void SaveToDB(MySqlTransaction trans) { if (usedTable.Fields.Count < 1) { return; } logger.Info("Сохраняем данные настраиваемых полей для id={0}", id); DBWorks.SQLHelper sql = new DBWorks.SQLHelper("UPDATE {0} SET ", usedTable.DBName); foreach (CFFieldInfo field in usedTable.Fields) { sql.AddAsList(String.Format("{0} = @{0}", field.ColumnName)); } ; sql.Add(" WHERE id = @id "); try { MySqlCommand cmd = new MySqlCommand(sql.Text, (MySqlConnection)QSMain.ConnectionDB, trans); cmd.Parameters.AddWithValue("@id", id); foreach (CFFieldInfo field in usedTable.Fields) { switch (field.FieldType) { case FieldTypes.TString: Entry stringWid = (Entry)FieldWidgets[field.ID]; cmd.Parameters.AddWithValue(field.ColumnName, DBWorks.ValueOrNull(stringWid.Text != "", stringWid.Text)); break; case FieldTypes.TCurrency: SpinButton moneyWid = (SpinButton)FieldWidgets[field.ID]; cmd.Parameters.AddWithValue(field.ColumnName, moneyWid.Value); break; } } cmd.ExecuteNonQuery(); logger.Info("Записано."); }catch (Exception ex) { string mes = "Ошибка чтения данных для настраиваемых полей!"; logger.Error(ex, mes); throw new ApplicationException(mes, ex); } }