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

时间:2014-09-17 08:19:04

标签: c# sqlite windows-phone-8 windows-runtime

我非常擅长将SQlite集成到Universal Apps。我已经启动并运行了数据库。但现在我试图找到一个列的最大值。它没有返回预期值。 Db填充了数据

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

异常表示错误的转换,但优先级为Integer类型。

修改

  

类型' System.InvalidCastException'的例外情况发生在JusWrite Trial.WindowsPhone.exe但未在用户代码中处理   附加信息:指定的演员表无效。

1 个答案:

答案 0 :(得分:4)

intInt32而不是Int64的别名int != Int64。您只能将盒装结构转换为相同类型或其Nullable变体。在这种情况下,它恰好是long / Int64或Nullable aka long?

要解决此问题,您需要在转换为long之前投射到int或仅使用Convert.ToInt32

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

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

进一步阅读Representation and Identity