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);
    }
  • 相关阅读:
    Redis其他知识
    Mybatis的sql语句操作
    Redis
    mybatis插件原理
    mybatis工作原理
    Mybatis逆向工程
    mybatis缓存机制
    Mybatis查询
    zabbix api添加主机
    jenkins + bitbucket 实现 pr自动构建及build状态通知
  • 原文地址:https://www.cnblogs.com/Robbery/p/2540369.html
Copyright © 2011-2022 走看看