Beispiel #1
0
        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));
        }
Beispiel #2
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));
        }