您的位置:首页 > 数据库

[C#]一步一步开发自己的自动代码生成工具之二:SQLServer字段与C#变量的对应转化

2008-07-15 17:34 1061 查看
第二步:数据表的预处理
///
/// 根据变量类型获取从数据库字段转换到该类型的转换语句
///
///
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));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐