zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    master线程的主循环,后台循环,刷新循环,暂停循环
    InnoDB的后台线程(IO线程,master线程,锁监控线程,错误监控线程)和内存(缓冲池,重做日志缓冲池,额外内存池)
    MySQL的连接方式
    编写高质量的 Java 代码
    TProfiler
    Copy-On-Write容器
    G1 垃圾收集器
    JAVA 虚拟机钩子
    Future和Promise
    算法笔记_134:字符串编辑距离(Java)
  • 原文地址:https://www.cnblogs.com/Robbery/p/2540369.html
Copyright © 2011-2022 走看看