从Db4o数据库中删除时遇到问题。目前,我可以存储新对象并将其显示在数据网格视图中。但由于某种原因,我无法再次删除对象。这是我正在使用的Linq。
public void DeleteStudent(int ssn)
{
var config = Db4oFactory.NewConfiguration();
using (var db = Db4oFactory.OpenFile(config, "StudentDB"))
{
var query = (from StudentDB x in db
where x.SSN == ssn
select x);
if (query != null)
{
db.Delete(query);
}
}
}
我正在通过ssn获取要删除的对象。我已经尝试过调试并检查它是否为null而不是。我得到了正确的对象。
这是我正在使用的GUI部分。
private void btnDeleteStudent_Click(object sender, EventArgs e)
{
int ssn = Convert.ToInt32(txtSSN.Text);
studentDB.DeleteStudent(ssn);
gridStudents.DataSource = studentDB.GetAllStudents();
ClearBoxes(this);
}
我从文本框中获取ssn并在单击删除按钮时将其作为参数提供。之后我正在刷新gridview。
希望你们中的一个可以提供帮助!我是Db4o的新手,所以不太了解它。答案 0 :(得分:0)
您将错误的对象传递给db。
将您的代码更改为:
using (var db = Db4oFactory.OpenFile(config, "StudentDB"))
{
var query = (from StudentDB x in db
where x.SSN == ssn
select x).SingleOrDefault();
if (query != null)
{
db.Delete(query);
}
db.Commit();
}