首页 > 解决方案 > 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 返回正确的值?

标签: c#sqlite

解决方案


如果您阅读DateTime.Ticks 属性:-

DateTime.Ticks 属性定义

命名空间:系统程序集:

System.Runtime.dll、mscorlib.dll、netstandard.dll

获取表示此实例的日期和时间的刻度数。

C#

复制 public long Ticks { get; }

属性值Int64表示此实例的日期和时间的刻度数。

该值介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间。

因此,您需要使用 Int64


推荐阅读