LiteDB-从现场读取

问题描述

这是我第一次使用LiteDB,我被困住了。我正在尝试从我的LiteDB中读取int。

var iLatestID = MainDB_Coll.FindOne(Query.All("iID",1));
if (iLatestID == null)
{
  MessageBox.Show("NULL");
  DatabaseTemplate.iID = 1;
}
else
{
  MessageBox.Show(int.Parse(iLatestID.ToString()).ToString());
  DatabaseTemplate.iID = int.Parse(iLatestID.ToString()) + 1;
}

好像iLatestID.ToString()返回一个错误的字符串... 还有什么其他方法可以从“ iID”字段中读取?

解决方法

LiteCollection<Table> MainDB_iIDs = MainDB.GetCollection<Table>;
MainDB_iIDs.EnsureIndex(x => x.iID);
          
var vField = MainDB_iIDs.FindOne(Query.All("iID",1));
if (vField == null)
{
  MessageBox.Show("NULL");
  DatabaseTemplate.iID = 1;
}
else
{
  int iMaxID = int.Parse(MainDB_iIDs.Max().ToString());
  MessageBox.Show(iMaxID.ToString());
  DatabaseTemplate.iID = iMaxID + 1;
}

似乎可以解决问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...