C# 在Codebehind中从Gridview中删除一行(是否获取异常?)

C# 在Codebehind中从Gridview中删除一行(是否获取异常?),c#,asp.net,exception,data-binding,gridview,C#,Asp.net,Exception,Data Binding,Gridview,我试图手动从gridview中删除一行,因为出于某种原因,当我从数据库和databind中删除该项时,gridview仍然没有更新。以下是我正在使用的代码: try { gvCertifications.DeleteRow(int.Parse(commandArgs[1])); } catch (HttpException) { //error } 出于某种原因,我总是遇到HttpException?我已经尝试在我的数据绑定之前和之后放置这个命令(因为说当gridview未绑定

我试图手动从gridview中删除一行,因为出于某种原因,当我从数据库和databind中删除该项时,gridview仍然没有更新。以下是我正在使用的代码:

try
{
    gvCertifications.DeleteRow(int.Parse(commandArgs[1]));
}
catch (HttpException)
{
    //error
}
出于某种原因,我总是遇到HttpException?我已经尝试在我的数据绑定之前和之后放置这个命令(因为说当gridview未绑定到数据源时会发生HttpException)

gridview在加载时已经绑定到数据源,所以我不知道为什么会出现此异常

另外,如果有帮助,下面是如何获取
commandArgs[]

String[] commandArgs = e.CommandArgument.ToString().Split('|'); //before in same function as the try/catch block
下面是.aspx文件中的命令参数:

CommandArgument='<%#Eval("ThisId") + "|" + Container.DataItemIndex %>'
CommandArgument=''

如果使用
sqldatasource
作为数据源(如中),则需要在其
deletecommand
属性上编写删除查询。或者,如果将
DataTabe
用作
数据源
,则需要处理gridview的
行删除事件。检查示例。

虽然它不一定能回答我的问题,但它解决了我试图用它解决的问题:

问题:

“…由于某种原因,当我从数据库和数据绑定中删除该项时,gridview仍然没有更新…”


GridView设置了预定义的命令,例如“选择”、“编辑”和“删除”。当我尝试使用命令名“delete”定义自己要运行的事件时,程序将尝试在预定义事件旁边运行部分事件。这就是造成问题的原因。

您提到的命令名是什么?您在哪个事件上编写了此代码?
CommandName=“delete”
事件是
gvCertifications\u RowCommand
ok.。然后,您是否在数据源的
deletecommand
属性上编写了删除查询?我正在使用自定义命令,即
GridView\u RowCommand(…){if(CommandName='delete'){…}