在Gridview中更新时出现Db4objects.Db4o.Ext.DatabaseClosedException

时间:2012-05-25 10:55:21

标签: gridview db4o

我正在尝试创建一个项目,我可以使用Gridview控件编辑,更新和删除我的对象,每次存储新对象时都会出现dbclosed异常错误。事实上我无法找到错误的地方。我在.NET中使用DB4o编程非常新,我找不到任何可以学习基础知识的好资源,因此任何参考资料都将完全受到赞赏。提前致谢。

//页面加载

     Db4oService.OpenDB();
     using (var patientdbcontainer = Db4oService.PatientDBContainer)
                    {
                       var list = patientdbcontainer.Query<Patient>(typeof(Patient)).ToList<Patient>();


                       GridView1.DataSource = list;
                       GridView1.DataBind();
                    }

//更新

public void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            //var ID = new Guid((string)e.NewValues["ID"]);

            //    var Name = (string)e.NewValues["Name"];
            //    var IMEI = long.Parse(e.NewValues["IMEI"].ToString());

            Patient updatedPatient = new Patient()
            {
                ID = new Guid((string)e.NewValues["ID"]),
                IMEI =long.Parse(e.NewValues["IMEI"].ToString()),
                Name = (string)e.NewValues["Name"]
            };
            Patient deprecatedPatient;
            using (var patientdbcontainer = Db4oService.PatientDBContainer)
            {

                deprecatedPatient = patientdbcontainer.Query<Patient>(typeof(Patient)).Where<Patient>(n => n.ID == (new Guid((string)e.NewValues["ID"]))).FirstOrDefault<Patient>();
               // deprecatedPatient.Name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
                deprecatedPatient.ID = updatedPatient.ID;
                deprecatedPatient.Name = updatedPatient.Name;
                patientdbcontainer.Delete(deprecatedPatient);

                patientdbcontainer.Store(updatedPatient);
                patientdbcontainer.Commit();

                GridView1.EditIndex = -1;
                GridView1.DataBind();




            }

1 个答案:

答案 0 :(得分:0)

1)如果我欠你的代码,也许最好让患者使用id,并更新属性和存储更改(无需创建和删除)。

2) 您可以尝试http://usefuldb4o.codeplex.com/

该项目专注于使用ASP.NET。源代码有一个带有CRUD操作的ASP.NET示例(源代码文件夹示例/ AspNetWebSolutions

这个项目也有一个Nuget包,有一个小例子实现:http://nuget.org/packages/UsefulDB4OToWeb

相关问题