代码生成器工具之二

第二步:数据表的预处理         ///
        /// 根据变量类型获取从数据库字段转换到该类型的转换语句
        ///
        ///
        private static void InitConvertMethod(FieldModel Field)
        {
            switch (Field.VarType)
            {
                case "string":
                    Field.ToVarConvertMethod = "Convert.ToString";
                    break;
                case "int":
                    Field.ToVarConvertMethod = "Convert.ToInt32";
                    break;
                case "DateTime":
                    Field.ToVarConvertMethod = "Convert.ToDateTime";
                    break;
                case "bool":
                    Field.ToVarConvertMethod = "Convert.ToBoolean";
                    break;
                case "float":
                    Field.ToVarConvertMethod = "Convert.ToSingle";
                    break;
                case "decimal":
                    Field.ToVarConvertMethod = "Convert.ToDecimal";
                    break;
                case "byte[]":
                    Field.ToVarConvertMethod = "(byte[])";
                    break;
                case "money":
                    Field.ToVarConvertMethod = "Convert.ToDecimal";
                    break;
                default:
                    throw new Exception(string.Format("变量类型({0})的转换方法未定义!", Field.VarType));
            }
        }
       

        ///
        /// 初始化数据库实体类属性默认值
        ///
        /// 数据库实体类属性
        private static void InitDefaultVarValue(FieldModel Field)
        {
            switch (Field.DbType)
            {
                case "char":
                    Field.DefaultValueVar = "String.Empty";
                    break;
                case "nchar":
                    Field.DefaultValueVar = "String.Empty";
                    break;
                case "varchar":
                    Field.DefaultValueVar = "String.Empty";
                    break;
                case "nvarchar":
                    Field.DefaultValueVar = "String.Empty";
                    break;
                case "text":
                    Field.DefaultValueVar = "String.Empty";
                    break;
                case "ntext":
                    Field.DefaultValueVar = "String.Empty";
                    break;
                case "int":
                    Field.DefaultValueVar = "0";
                    break;
                case "bit":
                    Field.DefaultValueVar = "false";
                    break;
                case "datetime":
                    Field.DefaultValueVar = "DateTime.MinValue";
                    break;
                case "float":
                    Field.DefaultValueVar = "0";
                    break;
                case "decimal":
                    Field.DefaultValueVar = "0";
                    break;
                case "image":
                    Field.DefaultValueVar = "null";
                    break;
                case "money":
                    Field.DefaultValueVar = "0";
                    break;
                default:
                    throw new Exception(string.Format("数据库字段类型({0})未定义!", Field.DbType));
            }
        }

        ///
        /// 获得数据访问参数的类型
        ///
        ///
        ///
        private static string GetSqlParamTypeFromSqlDbType(string DbType)
        {
            switch (DbType.ToLower())
            {
                case "char":
                    return "SqlDbType.Char";
                case "nchar":
                    return "SqlDbType.NChar";
                case "varchar":
                    return "SqlDbType.VarChar";
                case "nvarchar":
                    return "SqlDbType.NVarChar";
                case "text":
                    return "SqlDbType.Text";
                case "ntext":
                    return "SqlDbType.NText";
                case "int":
                    return "SqlDbType.Int";
                case "bit":
                    return "SqlDbType.Bit";
                case "datetime":
                    return "SqlDbType.DateTime";
                case "float":
                    return "SqlDbType.Float";
                case "image":
                    return "SqlDbType.Image";
                case "decimal":
                    return "SqlDbType.Decimal";
                case "money":
                    return "SqlDbType.Money";
                default:
                    throw new Exception(string.Format("数据库字段类型({0})未定义!", DbType));
            }
        }

        ///
        /// 获得属性变量类型
        ///
        ///
        ///
        private static string GetVarTypeFromSqlDbType(string DbType)
        {
            switch (DbType.ToLower())
            {
                case "char":
                    return "string";
                case "nchar":
                    return "string";
                case "varchar":
                    return "string";
                case "nvarchar":
                    return "string";
                case "text":
                    return "string";
                case "ntext":
                    return "string";
                case "int":
                    return "int";
                case "bit":
                    return "bool";
                case "datetime":
                    return "DateTime";
                case "float":
                    return "float";
                case "image":
                    return "byte[]";
                case "decimal":
                    return "decimal";
                case "money":
                    return "decimal";
                default:
                    throw new Exception(string.Format("数据库字段类型({0})未定义!", DbType));
            }
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值