public void updateList()
{
try
{
using (db)
{
var data = db.GetCollection<DataSet>("dataset");
var companyData = db.GetCollection<Company>("company");
var results = data.FindAll();
listView1.Items.Clear();
Debug.writeLine(results.Count()); //NullReferenceException is generated
foreach (DataSet finding in results) //Same here in results
{
var companyRes = companyData.FindById(finding.CompanyId);
listView1.Items.Add(new ListViewItem(new string[] { finding.Data.Date.ToString("dd/MM/yyyy"),
companyRes.Azienda,
finding.Netto.ToString(),
finding.Lordo.ToString()}));
}
listView1.Update();
}
} catch (NullReferenceException e) { }
当我第一次调用此函数时,没有任何问题,但是如果我尝试再次调用此函数,则会生成异常。 我尝试了LiteDB 4.1.4和5-beta版本。
编辑:在这种情况下,这不是“正常”的NullReferenceException,因为第一次调用它时就没有问题,并且调试结果包含我需要可视化的数据之后。
EDIT2 :我终于使它起作用了,您每次都必须使用新的LiteDatabase创建,无法完全统一。 替换:
using (db)
具有:
using (var db = new LiteDatabase(@"nameofdatabase.db"))