问题描述
这是我第一次使用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;
}
似乎可以解决问题。