查询后LiteDB中的NullReferenceException

时间:2019-10-27 11:48:17

标签: c# .net litedb

    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"))

0 个答案:

没有答案