一、C# vs SQLite:
C# | SQLite | ||||
字段名 | 类型 | 库类型 | GetFieldType(#) | 转换 | 备注 |
F_BOOL | bool | BIT NOT NULL | Boolean | ||
F_BOOL_NULL | bool? | BIT | Boolean | ||
F_SBYTE | sbyte | INT8 NOT NULL | SByte | sbyte_ | |
F_SBYTE_NULL | sbyte? | INT8 | SByte | sbyte_ | |
F_BYTE | byte | UINT8 NOT NULL | Byte | ||
F_BYTE_NULL | byte? | UINT8 | Byte | ||
F_SHORT | short | INT16 NOT NULL | Int16 | ||
F_SHORT_NULL | short? | INT16 | Int16 | ||
F_USHORT | ushort | UINT16 NOT NULL | UInt16 | ushort_ | |
F_USHORT_NULL | ushort? | UINT16 | UInt16 | ushort_ | |
F_INT | int | INT32 NOT NULL | Int32 | ||
F_INT_NULL | int? | INT32 | Int32 | ||
F_UINT | uint | UINT32 NOT NULL | UInt32 | uint_ | |
F_UINT_NULL | uint? | UINT32 | UInt32 | uint_ | |
F_LONG | long | INT64 NOT NULL | Int64 | ||
F_LONG_NULL | long? | INT64 | Int64 | ||
F_ULONG | ulong | UINT64 NOT NULL | UInt64 | ulong_ | |
F_ULONG_NULL | ulong? | UINT64 | UInt64 | ulong_ | |
F_FLOAT | float | FLOAT NOT NULL | Double | 不转兼容 | |
F_FLOAT_NULL | float? | FLOAT | Double | 不转兼容 | |
F_DOUBLE | double | DOUBLE NOT NULL | Double | ||
F_DOUBLE_NULL | double? | DOUBLE | Double | ||
F_DECIMAL | decimal | DECIMAL NOT NULL | Decimal | 存取不一:<F_DECIMAL>: [-79228162514264300000000000000] != [-79228162514264337593543950335] | |
F_DECIMAL_NULL | decimal? | DECIMAL | Decimal | 存取不一:<F_DECIMAL>: [-79228162514264300000000000000] != [-79228162514264337593543950335] | |
F_CHAR | char | TEXT NOT NULL | String | ||
F_CHAR_NULL | char? | TEXT | String | ||
F_STRING | string | TEXT NOT NULL | String | ||
F_STRING_NULL | string | TEXT | String | ||
F_DATETIME | DateTime | TEXT NOT NULL | String | ||
F_DATETIME_NULL | DateTime? | TEXT | String | ||
二、 C# vs MySQL:
C# | MySQL | ||||
字段名 | 类型 | 库类型 | GetFieldType(#) | 转换 | 备注 |
F_BOOL | bool | BOOL NOT NULL | Boolean | ||
F_BOOL_NULL | bool? | BOOL NULL | Boolean | ||
F_SBYTE | sbyte | TINYINT NOT NULL | SByte | sbyte_ | |
F_SBYTE_NULL | sbyte? | TINYINT NULL | SByte | sbyte_ | |
F_BYTE | byte | TINYINT UNSIGNED NOT NULL | Byte | ||
F_BYTE_NULL | byte? | TINYINT UNSIGNED NULL | Byte | ||
F_SHORT | short | SMALLINT NOT NULL | Int16 | ||
F_SHORT_NULL | short? | SMALLINT NULL | Int16 | ||
F_USHORT | ushort | SMALLINT UNSIGNED NOT NULL | UInt16 | ushort_ | |
F_USHORT_NULL | ushort? | SMALLINT UNSIGNED NULL | UInt16 | ushort_ | |
F_INT | int | INT NOT NULL | Int32 | ||
F_INT_NULL | int? | INT NULL | Int32 | ||
F_UINT | uint | INT UNSIGNED NOT NULL | UInt32 | uint_ | |
F_UINT_NULL | uint? | INT UNSIGNED NULL | UInt32 | uint_ | |
F_LONG | long | BIGINT NOT NULL | Int64 | ||
F_LONG_NULL | long? | BIGINT NULL | Int64 | ||
F_ULONG | ulong | BIGINT UNSIGNED NOT NULL | UInt64 | ulong_ | |
F_ULONG_NULL | ulong? | BIGINT UNSIGNED NULL | UInt64 | ulong_ | |
F_FLOAT | float | FLOAT NOT NULL | Single | 极值溢出 | |
F_FLOAT_NULL | float? | FLOAT NULL | Single | 极值溢出 | |
F_DOUBLE | double | DOUBLE NOT NULL | Double | ||
F_DOUBLE_NULL | double? | DOUBLE NULL | Double | ||
F_DECIMAL | decimal | DECIMAL NOT NULL | Decimal | 极值溢出 | |
F_DECIMAL_NULL | decimal? | DECIMAL NULL | Decimal | 极值溢出 | |
F_CHAR | char | CHARACTER NOT NULL | String | 中文报错 | |
F_CHAR_NULL | char? | CHARACTER NULL | String | 中文报错 | |
F_STRING | string | VARCHAR(50) NOT NULL | String | ||
F_STRING_NULL | string | VARCHAR(50) NULL | String | ||
F_DATETIME | DateTime | DATETIME NOT NULL | DateTime | ||
F_DATETIME_NULL | DateTime? | DATETIME NULL | DateTime | ||
三、 C# vs MSSQL:
C# | MSSQL | ||||
字段名 | 类型 | 库类型 | GetFieldType(#) | 转换 | 备注 |
F_BOOL | bool | bit NOT NULL | Boolean | ||
F_BOOL_NULL | bool? | bit NULL | Boolean | ||
F_SBYTE | sbyte | smallint NOT NULL | Int16 | sbyte_short | |
F_SBYTE_NULL | sbyte? | smallint NULL | Int16 | sbyte_short | |
F_BYTE | byte | tinyint NOT NUL; | Byte | ||
F_BYTE_NULL | byte? | tinyint NULL | Byte | ||
F_SHORT | short | smallint NOT NULL | Int16 | ||
F_SHORT_NULL | short? | smallint NULL | Int16 | ||
F_USHORT | ushort | int NOT NULL | Int32 | ushort_int | |
F_USHORT_NULL | ushort? | int NULL | Int32 | ushort_int | |
F_INT | int | int NOT NULL | Int32 | ||
F_INT_NULL | int? | int NULL | Int32 | ||
F_UINT | uint | bigint NOT NULL | Int64 | uint_long | |
F_UINT_NULL | uint? | bigint NULL | Int64 | uint_long | |
F_LONG | long | bigint NOT NULL | Int64 | ||
F_LONG_NULL | long? | bigint NULL | Int64 | ||
F_ULONG | ulong | real NOT NULL | Single | ulong_float | |
F_ULONG_NULL | ulong? | real NULL | Single | ulong_float | |
F_FLOAT | float | real NOT NULL | Single | ||
F_FLOAT_NULL | float? | real NULL | Single | ||
F_DOUBLE | double | float NOT NULL | Double | ||
F_DOUBLE_NULL | double? | float NULL | Double | ||
F_DECIMAL | decimal | decimal NOT NULL | Decimal | 极值溢出 | |
F_DECIMAL_NULL | decimal? | decimal NULL | Decimal | 极值溢出 | |
F_CHAR | char | char(1) NOT NULL | String | ||
F_CHAR_NULL | char? | char(1) NULL | String | ||
F_STRING | string | varchar(50) NOT NULL | F_STRING: | ||
F_STRING_NULL | string | varchar(50) NULL | String | ||
F_DATETIME | DateTime | datetime NOT NULL | DateTime | 必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。 | |
F_DATETIME_NULL | DateTime? | datetime NULL | DateTime | ||
四、C# vs Oracle:
C# | Oracle | ||||
字段名 | 类型 | 库类型 | GetFieldType(#) | 转换 | 备注 |
F_BOOL | bool | CHAR(1) NOT NULL | String | bool_string | |
F_BOOL_NULL | bool? | CHAR(1) | String | bool_string | |
F_SBYTE | sbyte | NUMBER(3) NOT NULL | Int16 | sbyte_short | |
F_SBYTE_NULL | sbyte? | NUMBER(3) | Int16 | sbyte_short | |
F_BYTE | byte | NUMBER(3) NOT NULL | Int16 | byte_short | |
F_BYTE_NULL | byte? | NUMBER(3) | Int16 | byte_short | |
F_SHORT | short | NUMBER(5) NOT NULL | Int32 | short_int | |
F_SHORT_NULL | short? | NUMBER(5) | Int32 | short_int | |
F_USHORT | ushort | NUMBER(5) NOT NULL | Int32 | ushort_int | |
F_USHORT_NULL | ushort? | NUMBER(5) | Int32 | ushort_int | |
F_INT | int | NUMBER(10) NOT NULL | Int64 | int_long | |
F_INT_NULL | int? | NUMBER(10) | Int64 | int_long | |
F_UINT | uint | NUMBER(10) NOT NULL | Int64 | uint_long | |
F_UINT_NULL | uint? | NUMBER(10) | Int64 | uint_long | |
F_LONG | long | NUMBER(19) NOT NULL | Decimal | long_decimal | |
F_LONG_NULL | long? | NUMBER(19) | Decimal | long_decimal | |
F_ULONG | ulong | NUMBER(19) NOT NULL | Decimal | ulong_decimal | |
F_ULONG_NULL | ulong? | NUMBER(19) | Decimal | ulong_decimal | |
F_FLOAT | float | BINARY_FLOAT NOT NULL | Single | ||
F_FLOAT_NULL | float? | BINARY_FLOAT | Single | ||
F_DOUBLE | double | BINARY_DOUBLE NOT NULL | Double | 极值溢出 | |
F_DOUBLE_NULL | double? | BINARY_DOUBLE | Double | 极值溢出 | |
F_DECIMAL | decimal | DECIMAL(33, 3 ) NOT NULL | Decimal | ||
F_DECIMAL_NULL | decimal? | DECIMAL(33, 3 ) | Decimal | ||
F_CHAR | char | CHAR(1) NOT NULL | String | ||
F_CHAR_NULL | char? | CHAR(1) | String | ||
F_STRING | string | VARCHAR(50) NOT NULL | String | 不允许空字符 | |
F_STRING_NULL | string | VARCHAR(50) | String | 不允许空字符 | |
F_DATETIME | DateTime | TIMESTAMP NOT NULL | DateTime | 大值读取报错 | |
F_DATETIME_NULL | DateTime? | TIMESTAMP | DateTime | 大值读取报 |
using System; using System.Collections.Generic; using System.Text; namespace vJine.Core.ORM { public class TypeConverter { public class sbyte_ /* : IConverter<sbyte> */ { public static sbyte CONV_Q( object V) { return ( sbyte )V; } } public class ushort_ /* : IConverter<ushort> */ { public static ushort CONV_Q( object V) { return ( ushort )V; } } public class uint_ /* : IConverter<uint> */ { public static uint CONV_Q( object V) { return ( uint )V; } } public class ulong_ /* : IConverter<ulong> */ { public static ulong CONV_Q( object V) { return ( ulong )V; } } public class bool_string /* : IConverter<bool> */ { public static object CONV_I( object V) { if (( bool )V == true ) { return " 1 " ; } else { return " 0 " ; } } public static bool CONV_Q( object V) { if (( string )V == " 1 " ) { return true ; } else { return false ; } } } public class sbyte_short /* : IConverter<sbyte> */ { public static object CONV_I( object V) { return Convert.ToInt16(V); } public static sbyte CONV_Q( object V) { return Convert.ToSByte(V); } } public class byte_short /* : IConverter<byte> */ { public static object CONV_I( object V) { return Convert.ToInt16(V); } public static byte CONV_Q( object V) { return Convert.ToByte(V); } } public class short_int /* : IConverter<short> */ { public static object CONV_I( object V) { return Convert.ToInt32(V); } public static short CONV_Q( object V) { return Convert.ToInt16(V); } } public class ushort_int /* : IConverter<ushort> */ { public static object CONV_I( object V, string Name) { return Convert.ToInt32(V); } public static ushort CONV_Q( object V, string Name) { return Convert.ToUInt16(V); } } public class int_long /* : IConverter<int> */ { public static object CONV_I( object V) { return Convert.ToInt64(V); } public static int CONV_Q( object V) { return Convert.ToInt32(V); } } public class uint_long /* : IConverter<uint> */ { public static object CONV_I( object V) { return Convert.ToInt64(V); } public static uint CONV_Q( object V) { return Convert.ToUInt32(V); } } public class long_decimal /* : IConverter<long> */ { public static object CONV_I( object V) { return decimal .Parse(V.ToString()); } public static long CONV_Q( object V) { return long .Parse(V.ToString()); } } public class ulong_float /* : IConverter<ulong> */ { public static object CONV_I( object V) { return Convert.ToSingle(V); } public static ulong CONV_Q( object V) { return Convert.ToUInt64(V); } } public class ulong_decimal /* : IConverter<ulong> */ { public static object CONV_I( object V) { return decimal .Parse(V.ToString()); } public static ulong CONV_Q( object V) { return ulong .Parse(V.ToString()); } } public class float_double /* : IConverter<float> */ { public static object CONV_I( object V) { return Convert.ToDouble(V); } public static float CONV_Q( object V) { return Convert.ToSingle(V); } } public class char_string /* : IConverter<char> */ { public static object CONV_I( object V) { if (V is Char) { return V; } else if (V is string ) { string chars = ( string )V; if (chars == "" ) { return ' \0 ' ; } else { return chars[ 0 ]; } } else { throw new OrmException( " Fail To Convert String[{0}] To Char " , V); } } public static char CONV_Q( object V) { return (( string )V)[ 0 ]; } } public class DateTime_ /* : IConverter<DateTime> */ { public static object CONV_I( object V) { return V; } public static DateTime CONV_Q( object V) { return (DateTime)V; } } } }