一、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;
}
}
}
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

