//获取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);
}