public Task <int> CreateField(string fieldName, string tableName, ReactFormItemType fieldType) { var sql = ""; switch (fieldType) { case ReactFormItemType.Input: case ReactFormItemType.Password: sql += $"ALTER TABLE {tableName} ADD {fieldName} nvarchar (500) NULL"; break; case ReactFormItemType.TextArea: case ReactFormItemType.Editor: case ReactFormItemType.Tags: sql += $"ALTER TABLE {tableName} ADD {fieldName} text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL"; break; case ReactFormItemType.Radio: case ReactFormItemType.Select: case ReactFormItemType.CheckBox: sql += $"ALTER TABLE {tableName} ADD {fieldName} text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL"; break; case ReactFormItemType.DataPicker: case ReactFormItemType.RangePicker: sql += $"ALTER TABLE {tableName} ADD {fieldName} timestamp(0) NULL DEFAULT NULL"; break; case ReactFormItemType.Upload: sql += $"ALTER TABLE {tableName} ADD {fieldName} nvarchar (4000) NULL"; break; case ReactFormItemType.Region: case ReactFormItemType.Cascader: sql += $"ALTER TABLE {tableName} ADD {fieldName} int NULL DEFAULT NULL"; break; case ReactFormItemType.Switch: sql += $"ALTER TABLE {tableName} ADD {fieldName} tinyint(1) NULL DEFAULT NULL"; break; default: throw new Exception("不存在字段类型"); } return(sql.IsNotEmpty() ? Connection().ExecuteAsync(sql) : Task.FromResult(0)); }
public Task <int> CreateField(string fieldName, string tableName, ReactFormItemType fieldType) { var sql = $"IF COL_LENGTH('{tableName}', '{fieldName}') IS NULL "; switch (fieldType) { case ReactFormItemType.Input: case ReactFormItemType.Password: sql += $"ALTER TABLE [{tableName}] ADD [{fieldName}] [nvarchar] (500) NULL"; break; case ReactFormItemType.TextArea: case ReactFormItemType.Editor: case ReactFormItemType.Tags: sql += $"ALTER TABLE [{tableName}] ADD [{fieldName}] [nvarchar] (MAX) NULL"; break; case ReactFormItemType.Radio: case ReactFormItemType.Select: case ReactFormItemType.CheckBox: sql += $"ALTER TABLE [{tableName}] ADD [{fieldName}] [nvarchar] (1000) NULL"; break; case ReactFormItemType.DataPicker: case ReactFormItemType.RangePicker: sql += $"ALTER TABLE [{tableName}] ADD [{fieldName}] [datetime] NULL"; break; case ReactFormItemType.Upload: sql += $"ALTER TABLE [{tableName}] ADD [{fieldName}] [nvarchar] (4000) NULL"; break; case ReactFormItemType.Region: case ReactFormItemType.Cascader: sql += $"ALTER TABLE [{tableName}] ADD [{fieldName}] [int] NULL"; break; case ReactFormItemType.Switch: sql += $"ALTER TABLE [{tableName}] ADD [{fieldName}] [bit] NULL"; break; default: throw new Exception("不存在字段类型"); } return(sql.IsNotEmpty() ? Connection().ExecuteAsync(sql) : Task.FromResult(0)); }