Попробуйте записать в событие RowDeleting вместо автоматически сгенерированного, возможно, потому, что вам нужно получить идентификатор строки, которую вы хотите удалить (предложение Where)
Пример:
Label13 скрыт, я получаю его из оператора select, но не показываю его пользователю.
VB.NET:
Protected Sub gvAddresses_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles gvAddresses.RowDeleting
Dim selectedAddessId As Label = gvAddresses.Rows(e.RowIndex).FindControl("Label13")
SqlDataSource.DeleteParameters("add_id").DefaultValue = selectedAddessId.Text
SqlDataSource.Delete()
End Sub
C #
protected void gvAddresses_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e)
{
//Get the address Id to delete the selected address only
Label selectedAddessId = gvAddresses.Rows(e.RowIndex).FindControl("Label13");
SqlDataSource.DeleteParameters("add_id").DefaultValue = selectedAddessId.Text;
SqlDataSource.Delete();
}