• CodeSmith部分类型转换代码


    View Code
    //获取C#数据类型
    public string GetCSharpType(ColumnSchema column)
    {
        if (column.Name.EndsWith("TypeCode")) return column.Name;
        
        switch (column.DataType)
        {
            case DbType.AnsiString: return "string";
            case DbType.AnsiStringFixedLength: return "string";
            case DbType.Binary: return "byte[]";
            case DbType.Boolean: return "bool";
            case DbType.Byte: return "int";
            case DbType.Currency: return "decimal";
            case DbType.Date: return "DateTime";
            case DbType.DateTime: return "DateTime";
            case DbType.Decimal: return "decimal";
            case DbType.Double: return "double";
            case DbType.Guid: return "Guid";
            case DbType.Int16: return "short";
            case DbType.Int32: return "int";
            case DbType.Int64: return "long";
            case DbType.Object: return "object";
            case DbType.SByte: return "sbyte";
            case DbType.Single: return "float";
            case DbType.String: return "string";
            case DbType.StringFixedLength: return "string";
            case DbType.Time: return "TimeSpan";
            case DbType.UInt16: return "ushort";
            case DbType.UInt32: return "uint";
            case DbType.UInt64: return "ulong";
            case DbType.VarNumeric: return "decimal";
            default:
            {
                return "__UNKNOWN__" + column.NativeType;
            }
        }
    }
    
    //获取转换类型
    public string GetConvert(ColumnSchema column)
    {
        if (column.Name.EndsWith("TypeCode")) return column.Name;
        
        switch (column.DataType)
        {
            case DbType.AnsiString: return "Convert.ToString";
            case DbType.AnsiStringFixedLength: return "Convert.ToString";
            case DbType.Binary: return "Convert.ToByte";
            case DbType.Boolean: return "Convert.ToBoolean";
            case DbType.Byte: return "Convert.ToInt32";
            case DbType.Currency: return "Convert.ToDecimal";
            case DbType.Date: return "Convert.ToDateTime";
            case DbType.DateTime: return "Convert.ToDateTime";
            case DbType.Decimal: return "Convert.ToDecimal";
            case DbType.Double: return "Convert.ToDouble";
            case DbType.Guid: return "Convert.ToString";
            case DbType.Int16: return "Convert.ToInt16";
            case DbType.Int32: return "Convert.ToInt32";
            case DbType.Int64: return "Convert.ToInt64";
            case DbType.Object: return "Convert.ToString";
            case DbType.SByte: return "Convert.ToByte";
            case DbType.Single: return "Convert.ToInt32";
            case DbType.String: return "Convert.ToString";
            case DbType.StringFixedLength: return "Convert.ToString";
            case DbType.Time: return "Convert.DateTime";
            case DbType.UInt16: return "Convert.ToUInt16";
            case DbType.UInt32: return "Convert.ToUInt32";
            case DbType.UInt64: return "Convert.ToUInt64";
            case DbType.VarNumeric: return "Convert.ToDecimal";
            default:
            {
                return "__UNKNOWN__" + column.NativeType;
            }
        }
    }
    
    public string GetMySqlDbType(ColumnSchema column)
    {
        switch(GetSqlDbType(column))
        {
            case "double":
            return "Double";
            
            case "Bit" :
            return "Int32";
            
            case "Int" :
            return "Int32";
            
            case "BigInt" :
            return "Int64";
            
            case "SmallInt":
            return "Int16";
            
            case "TinyInt" :
            return "Int16";
            
            case "UniqueIdentifier" :
            return "VarChar, 36";
            
            case "NVarChar" :
            if(column.Size > 0)
            {
                return "VarChar, " + column.Size;
            }
            else
            {
                return "Text";
            }
            
            case "VarChar" :
            return "VarChar, " + column.Size;
            
            case "NChar" :
            return "VarChar, " + column.Size;
            
            case "Char" :
            return "VarChar, " + column.Size;
            
            case "Text" :
            return "Text";
            
            case "NText" :
            return "Text";
            
            case "Image" :
            return "LongBlob";
            
            case "DateTime" :
            return "DateTime";
            
            case "SmallDateTime":
            return "DateTime";
        }
        
        return GetSqlDbType(column);
    }
  • 相关阅读:
    [GL]行星运行1
    一个图的带权邻接表存储结构的应用
    [GDAL]3.影像金字塔构建
    [GDAL]1.GDAL1.8.1编译与第一个程序
    [GDAL]2.读取栅格和矢量数据
    C#迭代器
    GoogleEarth缓存机制探索
    AE开发三维的不足!
    [GDAL]4.影像的读取和显示
    [STL学习]1.概述
  • 原文地址:https://www.cnblogs.com/Robbery/p/2540369.html
Copyright © 2020-2023  润新知