ASP.net删除行使用gridview
问题描述:
我想删除一行使用删除功能提供trouhg gridview向导。ASP.net删除行使用gridview
但是当我删除点击我得到以下错误:
An exception of type 'System.InvalidOperationException' occurred in System.Data.Linq.dll but was not handled in user code
这是我的代码:
public void deleteProject(DAL.Project p)
{
DAL.Project result = (from project in dc.Projects
where project.pk_project_id == p.pk_project_id
select project).Single();
dc.Projects.DeleteOnSubmit(result);
dc.SubmitChanges();
}
当我调试它的价值“P”没有属性。
奇怪的是,当我想更新我行我用有些同样的方法:
DAL.Project result = (from project in dc.Projects
where project.pk_project_id == p.pk_project_id
select project).Single();
result.titel = p.titel;
result.beschrijving = p.beschrijving;
dc.SubmitChanges();
这远远。那么为什么它不适用于删除行?
答
Enumerable.Single
如果包含多个项目或输入序列为空,则抛出一个InvalidOperationException
。您可以使用First
或FirstOrDefault
:
DAL.Project result = (from project in dc.Projects
where project.pk_project_id == p.pk_project_id
select project).FirstOrDefault();
if(result != null)
{
// ...
}
(但是,我不知道为什么更新工作)
+0
它仍然无法正常工作。 – user683326 2014-08-27 13:35:28
它看起来像DAL.Project没有被调用deleteProject之前分配的,是什么样的更新不同方法? – 2014-08-27 13:04:56
nvm我以为你的意思是p为空 – 2014-08-27 13:06:06
事实上,当我调用删除方法“p”= null时,但在调用update时它不为null。奇怪的是,我打电话给他们两个以相同的方式,所以他们不应该成为一个问题。 – user683326 2014-08-27 13:28:36