c# - sqLite dotnet reader读取错误的int类型
问题描述
我有一个使用此命令创建的 sqlite 表:
CREATE TABLE PriceTable (DateTime INT PRIMARY KEY, Bid REAL NOT NULL, Ask REAL NOT NULL)
然后在 DateTime 列中,我存储了 C# DateTime 刻度值,因此表中填充了这样的数据(如果我使用数据库浏览器,例如https://sqlitebrowser.org/):
但是,当我从另一个 C# 应用程序中读取该表并查看 SQliteDataReader 的 GetFieldType 时,它说第一列是 Int32,然后返回诸如“-499740304”之类的值,这似乎将其转换为 Int32。
如何让 SQliteDataReader 返回正确的值?
解决方案
如果您阅读DateTime.Ticks 属性:-
DateTime.Ticks 属性定义
命名空间:系统程序集:
System.Runtime.dll、mscorlib.dll、netstandard.dll
获取表示此实例的日期和时间的刻度数。
C#
复制 public long Ticks { get; }
属性值Int64表示此实例的日期和时间的刻度数。
该值介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间。
因此,您需要使用 Int64
推荐阅读
- tensorflow - TensorFlow 修改后的 onehot 编码
- javascript - jQuery - 在 div 中查找自身的索引
- angular - Angular 5 Post 不工作
- azure - 计划 Azure 应用服务的备份 - 托管在标准层的应用服务计划上的功能应用
- ballerina - Ballerina 中的 XA 事务与 mysql
- c++ - 为什么 (int)pow(2, 32) == -2147483648
- curl - 即使安装了 curl,也找不到 curl 命令
- tableau-api - 如何从日期时间输入日期计算持续时间?
- angular - Angular Forms:“没有值访问器......”
- docker - 无法连接到 Docker 服务