Since the SQLite engine is inherently typeless and ADO.NET is much more strongly typed, the ADO.NET wrapper must make certain decisions about the columns returned in any given SQL query. One of the deciding factors is the underlying datatype declared in the CREATE TABLE statement.
The following lists the datatypes and mappings the SQLite ADO.NET wrapper understands. If there is anything missing, wrong, or needs adding, please let me know:
| COUNTER |
DbType.Int64 |
| AUTOINCREMENT |
DbType.Int64 |
| IDENTITY |
DbType.Int64 |
| LONG |
DbType.Int64 |
| TINYINT |
DbType.Byte |
| INTEGER |
DbType.Int64 |
| INT |
DbType.Int32 |
| VARCHAR |
DbType.String |
| NVARCHAR |
DbType.String |
| CHAR |
DbType.String |
| NCHAR |
DbType.String |
| TEXT |
DbType.String |
| NTEXT |
DbType.String |
| STRING |
DbType.String |
| DOUBLE |
DbType.Double |
| FLOAT |
DbType.Double |
| REAL |
DbType.Single |
| BIT |
DbType.Boolean |
| YESNO |
DbType.Boolean |
| LOGICAL |
DbType.Boolean |
| BOOL |
DbType.Boolean |
| NUMERIC |
DbType.Decimal |
| DECIMAL |
DbType.Decimal |
| MONEY |
DbType.Decimal |
| CURRENCY |
DbType.Decimal |
| TIME |
DbType.DateTime |
| DATE |
DbType.DateTime |
| TIMESTAMP |
DbType.DateTime |
| DATETIME |
DbType.DateTime |
| BLOB |
DbType.Binary |
| BINARY |
DbType.Binary |
| VARBINARY |
DbType.Binary |
| IMAGE |
DbType.Binary |
| GENERAL |
DbType.Binary |
| OLEOBJECT |
DbType.Binary |
| GUID |
DbType.Guid |
| UNIQUEIDENTIFIER |
DbType.Guid |
| MEMO |
DbType.String |
| NOTE |
DbType.String |
| LONGTEXT |
DbType.String |
| LONGCHAR |
DbType.String |
| SMALLINT |
DbType.Int16 |
| BIGINT |
DbType.Int64 |
| LONGVARCHAR |
DbType.String |
| SMALLDATE |
DbType.DateTime |
| SMALLDATETIME |
DbType.DateTime |