public static bool Update(ProductFieldInfo field) { ProductModelInfo dataById = ProductModel.GetDataById(field.ModelID); ProductFieldInfo dataById2 = ProductField.GetDataById(field.AutoID); bool result; if (BizBase.dbo.UpdateModel <ProductFieldInfo>(field)) { if (!dataById2.IsSystem) { try { string text = field.DataType; if (string.Compare(text, "nvarchar", true) == 0) { object obj = text; text = string.Concat(new object[] { obj, "(", field.DataLength, ")" }); } TableManager.AlterTableColumn(dataById.TableName, dataById2.FieldName, field.FieldName, text, true, field.DefaultValue); } catch (Exception ex) { throw ex; } } CacheUtils.Del("JsonLeeCMS_CacheForPROMODEL"); result = true; } else { result = false; } return(result); }
/// <summary> /// Updates database representation of given form field /// </summary> /// <param name="oldFieldInfo">Form field prior to the change</param> /// <param name="updatedFieldInfo">Form field after the change has been made.</param> /// <param name="tm">Table manager allowing the database changes.</param> /// <param name="tableName">Name of the table to be changed.</param> /// <returns>Possible error message</returns> protected string UpdateDatabaseColumn(FormFieldInfo oldFieldInfo, FormFieldInfo updatedFieldInfo, TableManager tm, string tableName) { if (updatedFieldInfo.External) { if (!oldFieldInfo.External) { tm.DropTableColumn(tableName, oldFieldInfo.Name); } } else { // Validate the default value string errorMessage; string newDBDefaultValue = GetDefaultValueInDBCulture(updatedFieldInfo, out errorMessage); if (!String.IsNullOrEmpty(errorMessage)) { return(errorMessage); } // Set column type and size string newColumnType = DataTypeManager.GetSqlType(updatedFieldInfo.DataType, updatedFieldInfo.Size, updatedFieldInfo.Precision); string oldColumnName = oldFieldInfo.Name; string newColumnName = updatedFieldInfo.Name; if (oldFieldInfo.External) { tm.AddTableColumn(tableName, newColumnName, newColumnType, updatedFieldInfo.AllowEmpty, newDBDefaultValue); } else { // Change table column tm.AlterTableColumn(tableName, oldColumnName, newColumnName, newColumnType, updatedFieldInfo.AllowEmpty, newDBDefaultValue); } } return(null); }