ListViewDeletedEventArgs.AffectedRows Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el número de filas afectadas por la operación de eliminación.
public:
property int AffectedRows { int get(); };
public int AffectedRows { get; }
member this.AffectedRows : int
Public ReadOnly Property AffectedRows As Integer
Valor de propiedad
Número de filas afectadas por la operación de eliminación.
Ejemplos
En el ejemplo siguiente se muestra cómo usar la AffectedRows propiedad para comprobar que se eliminó un elemento durante la operación de eliminación.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load()
{
Message.Text = String.Empty;
}
void ContactsListView_ItemDeleted(Object sender, ListViewDeletedEventArgs e)
{
// Determine whether an exception occurred during the delete operation.
if (e.Exception == null)
{
// Ensure that a record was deleted.
if (e.AffectedRows > 0)
{
Message.Text = e.AffectedRows + " item(s) deleted successfully.";
}
else
{
Message.Text = "No item was deleted.";
}
}
else
{
// Insert the code to handle the exception here.
// Indicate that the exception has been handled.
e.ExceptionHandled = true;
Message.Text = "An error occurred during the delete operation.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ListViewDeletedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListViewDeletedEventArgs Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="ContactsListView"
DataSourceID="ContactsDataSource"
DataKeyNames="ContactID"
OnItemDeleted="ContactsListView_ItemDeleted"
runat="server">
<LayoutTemplate>
<table cellpadding="2" runat="server" id="tblContacts" width="640px">
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="PeopleDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField
ShowFirstPageButton="true" ShowLastPageButton="true"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td valign="top">
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
<asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
</td>
<td>
<asp:Label ID="EmailLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
</td>
<td>
<asp:LinkButton ID="DeleteButton" runat="server"
CommandName="Delete"
Text="Delete"
OnClientClick="return confirm('Are you sure?');" />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress]
FROM Person.Contact"
DeleteCommand="DELETE FROM Person.Contact WHERE [ContactID] = @ContactID">
<DeleteParameters>
<asp:Parameter Name="ContactID" Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load()
Message.Text = String.Empty
End Sub
Sub ContactsListView_ItemDeleted(sender As Object, e As ListViewDeletedEventArgs)
' Determine whether an exception occurred during the delete operation.
If e.Exception Is Nothing Then
' Ensure that a record was deleted.
If e.AffectedRows > 0 Then
Message.Text = e.AffectedRows.ToString() & _
" item(s) deleted successfully."
Else
Message.Text = "No item was deleted."
End If
Else
' Insert the code to handle the exception here.
' Indicate that the exception has been handled.
e.ExceptionHandled = true
Message.Text = "An error occurred during the delete operation."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListViewDeletedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListViewDeletedEventArgs Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="ContactsListView"
DataSourceID="ContactsDataSource"
DataKeyNames="ContactID"
OnItemDeleted="ContactsListView_ItemDeleted"
runat="server">
<LayoutTemplate>
<table cellpadding="2" runat="server" id="tblContacts" width="640px">
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="PeopleDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField
ShowFirstPageButton="true" ShowLastPageButton="true"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td valign="top">
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
<asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
</td>
<td>
<asp:Label ID="EmailLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
</td>
<td>
<asp:LinkButton ID="DeleteButton" runat="server"
CommandName="Delete"
Text="Delete"
OnClientClick="return confirm('Are you sure?');" />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress]
FROM Person.Contact"
DeleteCommand="DELETE FROM Person.Contact WHERE [ContactID] = @ContactID">
<DeleteParameters>
<asp:Parameter Name="ContactID" Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
</form>
</body>
</html>
Comentarios
Utilice la AffectedRows propiedad para determinar el número de elementos afectados por la operación de eliminación, según lo indicado por el control de origen de datos. Esta propiedad se usa normalmente para determinar si se eliminó el número correcto de elementos de las maneras siguientes:
Para comprobar que solo se eliminó un único elemento. A veces, una instrucción delete escrita incorrectamente puede eliminar varios elementos.
Para comprobar que se eliminó un elemento si se produce un error durante la operación de eliminación, pero no se generó ninguna excepción.
Para comprobar que se eliminó un elemento cuando un control de origen de datos que admite la simultaneidad optimista (como los SqlDataSource controles y ObjectDataSource ) tiene su ConflictDetection propiedad establecida en el valor de
ConflictOptions.CompareAllValues
enumeración. En esta configuración, es posible que no se elimine un elemento modificado por otro usuario.