SQL type 'datetimeoffset' is not registered

2021/6/25 19:26:54

本文主要是介绍SQL type 'datetimeoffset' is not registered,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

System.NotSupportedException: [DataTypeManager.GetFieldType]: SQL type 'datetimeoffset' is not registered, register the type with method RegisterDataTypes(...)
at CMS.DataEngine.DataTypeManager.GetFieldType(String sqlType, Int32 size, Boolean throwException)
at CMS.DataEngine.FieldBase`1.LoadFromTableData(DataRow row, Boolean isPrimary, Boolean isSystem)
at CMS.FormEngine.FormFieldInfo.LoadFromTableData(DataRow row, Boolean isPrimary, Boolean isSystem)
at CMS.DataEngine.DataDefinition.LoadFromDataStructure(String tableName, TableManager manager, Boolean isSystem)
at CMS.DataEngine.TableManager.GetDatabaseFields(String tableName)
at CMS.DataEngine.TableManager.GetOldFields(String tableName, String definition, Boolean loadOldDefinition)
at CMS.DataEngine.TableManager.UpdateTableByDefinition(UpdateTableParameters parameters)
at CMS.DataEngine.DataClassInfoProvider.EnsureDatabaseStructure(DataClassInfo classInfo, Boolean updateSystemFields)
at CMS.DataEngine.DataClassInfoProvider.SetDataClassInfoInternal(DataClassInfo infoObj)
at CMS.DataEngine.DataClassInfoProviderBase`1.SetDataClassInfo(DataClassInfo infoObj)
at CMS.DataEngine.DataClassInfo.SetObject()
at CMS.DataEngine.BaseInfo.Update()

 

// CMS.DataEngine.DataTypeManager
/// <summary>
/// Returns form field data type from database column data type.
/// Some sql types map to multiple field types that differ by size, e.g. nvarchar has more field data types that differ by size.
/// Specify size to get more accurate result. By default max size for given sql type is used.
/// </summary>
/// <param name="sqlType">Database column data type</param>
/// <param name="size">Specify the size of sql type to get accurate result</param>
/// <param name="throwException">Indicates if exception should be thrown for unsupported SQL data type</param>
// Token: 0x06000903 RID: 2307 RVA: 0x0001BC38 File Offset: 0x0001AC38
public static string GetFieldType(string sqlType, int size = -1, bool throwException = false)
{
    DataType dataType = DataTypeManager.GetDataType(TypeEnum.SQL, sqlType);
    if (dataType == null)
    {
        if (throwException)
        {
            throw new NotSupportedException("[DataTypeManager.GetFieldType]: SQL type '" + sqlType + "' is not registered, register the type with method RegisterDataTypes(...)");
        }
        return "";
    }
    else
    {
        if (dataType.FieldType == "text" && size == -1)
        {
            return "longtext";
        }
        return dataType.FieldType;
    }
}

 

// CMS.DataEngine.DataTypeManager
/// <summary>
/// Gets the data type settings by its SQL type
/// </summary>
/// <param name="typeEnum"></param>
/// <param name="typeValue">SQL type</param>
// Token: 0x06000909 RID: 2313 RVA: 0x0001BDDC File Offset: 0x0001ADDC
public static DataType GetDataType(TypeEnum typeEnum, string typeValue)
{
    DataType dataType = null;
    switch (typeEnum)
    {
    case TypeEnum.SQL:
        dataType = DataTypeManager.DataTypesBySqlType[typeValue];
        if (dataType == null)
        {
            int num = typeValue.IndexOf("(");
            if (num > 0)
            {
                typeValue = typeValue.Substring(0, num);
            }
            dataType = DataTypeManager.DataTypesBySqlType[typeValue];
        }
        break;
    case TypeEnum.Field:
        dataType = DataTypeManager.DataTypesByFieldType[typeValue];
        break;
    case TypeEnum.Schema:
        dataType = DataTypeManager.DataTypesBySchemaType[typeValue];
        break;
    }
    return dataType;
}

 

// CMS.DataEngine.DataTypeManager
/// <summary>
/// Registers the given data type to the system
/// </summary>
// Token: 0x060008FB RID: 2299 RVA: 0x0001B1A5 File Offset: 0x0001A1A5
public static void RegisterDataTypes(params DataType[] types)
{
    DataTypeManager.EnsureSystemTypes();
    DataTypeManager.RegisterDataTypesInternal(false, types);
}

 



这篇关于SQL type 'datetimeoffset' is not registered的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程