使用SQLitePCL-WP8.1在SqLite中查找Max

本文关键字:查找 Max SqLite SQLitePCL-WP8 使用 | 更新日期: 2023-09-27 18:22:05

我对将SQlite集成到通用应用程序非常陌生。我已经启动数据库并运行。但现在我正在努力寻找一列的最大值。它没有返回预期值。Db填充有数据

var db = App.conn;
using (var statement = db.Prepare("SELECT MAX(Priority) as Priority FROM FOLDER; "))
{
    statement.Step();
    var result = (int)statement["Priority"];
}

异常表示强制转换错误,但Priority是Integer类型。

编辑

JustWrite Trial.WindowsPhone.exe中发生类型为"System.InvalidCastException"的异常,但未在用户代码中处理附加信息:指定的强制转换无效。

使用SQLitePCL-WP8.1在SqLite中查找Max

intInt32的别名,而不是Int64,因此是int != Int64。只能将装箱结构强制转换为相同类型或其可为null的变体。在这种情况下,它恰好是long/Int64或Nullable,也就是long?

要解决此问题,您需要先转换为long,然后再转换为int,或者只需使用Convert.ToInt32

var result = (int)(long)statement["Priority"];

var result = Convert.ToInt32(statement["Priority"]);

进一步阅读表示和身份