虽然上篇文章中提到 SQLite 是弱类型数据库, 但对于 System.Data.SQLite 来说, 为了更好的与 Ado.NET 2.0 互操作, 作者仍然建议在创建表的时候就指定类型, 以方便程序进行类型转换, 下面是类型关键字列表:
- DbType.Boolean BIT YESNO LOGICAL BOOL
- DbType.Byte TINYINT
- DbType.Int16 SMALLINT
- DbType.Int32 INT
- DbType.Int64 INTEGER BIGINT COUNTER AUTOINCREMENT IDENTITY LONG
- DbType.Single REAL
- DbType.Double DOUBLE FLOAT
- DbType.Decimal NUMERIC DECIMAL MONEY CURRENCY
- DbType.String CHAR NCHAR VARCHAR NVARCHAR TEXT NTEXT LONGTEXT LONGCHAR LONGVARCHAR STRING MEMO NOTE
- DbType.Binary BLOB BINARY VARBINARY IMAGE GENERAL OLEOBJECT
- DbType.Guid GUID UNIQUEIDENTIFIER
- DbType.DateTime TIME DATE DATETIME SMALLDATE SMALLDATETIME TIMESTAMP
有两点需要注意:
- SQLite 主键默认的 INTEGER 类型对应的是 Int64, 而 INT 对应的是 Int32.
- 日期和时间类型最终存储为字符串, 所以格式必须符合ISO8601标准:
yyyy-MM-dd HH:mm:ss
yyyyMMddHHmmss
yyyyMMddTHHmmssfffffff
yyyy-MM-dd
yy-MM-dd
yyyyMMdd
HH:mm:ss
THHmmss