我创建了列类型为INT8的表。当我尝试使用SQLiteCommand.ExecuteScalar(C#)执行select查询时,它返回SByte而不是long。
为什么?
答案 0 :(得分:2)
System.Data.SQLite.dll源中的部分数据类型映射:
new SQLiteDbTypeMapping("INT8", DbType.SByte, false),
new SQLiteDbTypeMapping("INT16", DbType.Int16, false),
new SQLiteDbTypeMapping("INT32", DbType.Int32, false),
new SQLiteDbTypeMapping("INT64", DbType.Int64, false),
new SQLiteDbTypeMapping("INTEGER", DbType.Int64, true)
根据源代码,INT8是System.SByte。 事实上,SQLite for SQLite允许将INT64值存储到INT8字段中。 可以通过两种方式读取此值:
在我的测试中,我存储了价值' 129'进入INT8领域。然后我试着读这个值。