222 lines
5.6 KiB
VB.net
222 lines
5.6 KiB
VB.net
Imports System.Text
|
||
|
||
Namespace Database.Mysql
|
||
Public Class DataParam
|
||
Enum DataTypeEnum
|
||
'###############################数值类型#############################
|
||
''' <summary>
|
||
''' 1 byte,小整数值
|
||
''' </summary>
|
||
Tinyint
|
||
|
||
''' <summary>
|
||
''' 2 bytes,大整数值
|
||
''' </summary>
|
||
Smallint
|
||
|
||
''' <summary>
|
||
''' 3 bytes,大整数值
|
||
''' </summary>
|
||
Mediumint
|
||
|
||
''' <summary>
|
||
''' 4 bytes,大整数值
|
||
''' </summary>
|
||
Int
|
||
|
||
''' <summary>
|
||
''' 4 bytes,大整数值
|
||
''' </summary>
|
||
[Integer]
|
||
|
||
''' <summary>
|
||
''' 8 bytes,极大整数值
|
||
''' </summary>
|
||
Bigint
|
||
|
||
''' <summary>
|
||
''' 4 bytes,单精度浮点数值
|
||
''' </summary>
|
||
Float
|
||
|
||
|
||
''' <summary>
|
||
''' 8 bytes,双精度浮点数值
|
||
''' </summary>
|
||
[Double]
|
||
|
||
|
||
|
||
'####################日期类型###############################
|
||
|
||
''' <summary>
|
||
''' 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
|
||
''' </summary>
|
||
[Decimal]
|
||
|
||
''' <summary>
|
||
''' 3 bytes,日期值,YYYY-MM-DD
|
||
''' </summary>
|
||
[Date]
|
||
|
||
|
||
''' <summary>
|
||
''' 3 bytes,时间值或持续时间,HH:MM:SS
|
||
''' </summary>
|
||
Time
|
||
|
||
|
||
''' <summary>
|
||
''' 1 bytes,年份值,YYYY
|
||
''' </summary>
|
||
Year
|
||
|
||
|
||
''' <summary>
|
||
''' 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
|
||
''' </summary>
|
||
Datetime
|
||
|
||
''' <summary>
|
||
''' 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
|
||
''' </summary>
|
||
Timestamp
|
||
|
||
|
||
'####################字符类型###############################
|
||
|
||
''' <summary>
|
||
''' 0-255 bytes,定长字符串
|
||
''' </summary>
|
||
[Char]
|
||
|
||
''' <summary>
|
||
''' 0-65535 bytes,变长字符串
|
||
''' </summary>
|
||
Varchar
|
||
|
||
''' <summary>
|
||
''' 0-255 bytes,不超过 255 个字符的二进制字符串
|
||
''' </summary>
|
||
Tinyblob
|
||
|
||
|
||
''' <summary>
|
||
''' 0-255 bytes,短文本字符串
|
||
''' </summary>
|
||
Tinytext
|
||
|
||
''' <summary>
|
||
''' 0-65 535 bytes,二进制形式的长文本数据
|
||
''' </summary>
|
||
Blob
|
||
|
||
''' <summary>
|
||
''' 0-65 535 bytes,长文本数据
|
||
''' </summary>
|
||
Text
|
||
|
||
|
||
''' <summary>
|
||
''' 0-16 777 215 bytes,二进制形式的中等长度文本数据
|
||
''' </summary>
|
||
Mediumblob
|
||
|
||
''' <summary>
|
||
''' 0-16 777 215 bytes,中等长度文本数据
|
||
''' </summary>
|
||
Mediumtext
|
||
|
||
''' <summary>
|
||
''' 0-4 294 967 295 bytes,二进制形式的极大文本数据
|
||
''' </summary>
|
||
Longblob
|
||
|
||
''' <summary>
|
||
''' 0-4 294 967 295 bytes,极大文本数据
|
||
''' </summary>
|
||
Longtext
|
||
End Enum
|
||
|
||
''' <summary>
|
||
''' 列名
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property ColumnName() As String
|
||
|
||
''' <summary>
|
||
''' 当前值
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property Value() As String
|
||
|
||
|
||
''' <summary>
|
||
''' 默认值
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property DefaultValue() As String
|
||
|
||
''' <summary>
|
||
''' 数据类型
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property DataType() As DataTypeEnum
|
||
|
||
''' <summary>
|
||
''' 数据类型长度
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property DataTypeLength() As Integer
|
||
|
||
''' <summary>
|
||
''' 数据类型是否带符号
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property IsUnsigned() As Boolean
|
||
|
||
|
||
|
||
''' <summary>
|
||
''' 是否允许为空
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property IsNull() As Boolean = True
|
||
|
||
''' <summary>
|
||
''' 是否自动增长
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property IsAutoIncrement() As Boolean
|
||
|
||
''' <summary>
|
||
''' 是否为主键
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property IsPrimaryKey() As Boolean
|
||
|
||
Public Function ToAddColString() As String
|
||
Dim sb As New StringBuilder
|
||
sb.Append($"`{ColumnName}`")
|
||
|
||
Select Case DataType
|
||
Case DataTypeEnum.Varchar,DataTypeEnum.[Char]
|
||
sb.Append($" {DataType}({DataTypeLength}) ")
|
||
Case DataTypeEnum.Int
|
||
sb.Append($" {DataType}")
|
||
if IsUnsigned Then sb.Append($" Unsigned")
|
||
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
|
||
Case Else
|
||
sb.Append($" {DataType}")
|
||
End Select
|
||
|
||
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
|
||
|
||
If IsPrimaryKey Then
|
||
sb.Append($" PRIMARY KEY")
|
||
End If
|
||
|
||
Return sb.ToString()
|
||
End Function
|
||
End Class
|
||
End Namespace |