GridViewDeletedEventArgs.AffectedRows Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the number of rows affected by the delete operation.
public:
property int AffectedRows { int get(); };
public int AffectedRows { get; }
member this.AffectedRows : int
Public ReadOnly Property AffectedRows As Integer
Property Value
The number of rows affected by the delete operation.
Examples
The following example demonstrates how to use the AffectedRows property to verify that a record was deleted during the delete operation.
<%@ 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 CustomersGridView_RowDeleted(Object sender, GridViewDeletedEventArgs e)
{
// Use the Exception property to determine whether an exception
// occurred during the delete operation.
if (e.Exception == null)
{
// Use the AffectedRows property to determine whether the
// record was deleted. Sometimes an error might occur that
// does not raise an exception, but prevents the delete
// operation from completing.
if (e.AffectedRows == 1)
{
Message.Text = "Record deleted successfully.";
}
else
{
Message.Text = "An error occurred during the delete operation.";
}
}
else
{
// Insert the code to handle the exception.
Message.Text = "An error occurred during the delete operation.";
// Use the ExceptionHandled property to indicate that the
// exception is already handled.
e.ExceptionHandled = true;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewDeletedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewDeletedEventArgs Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames property as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
autogeneratedeletebutton="true"
datakeynames="CustomerID"
onrowdeleted="CustomersGridView_RowDeleted"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
deletecommand="Delete from Customers where CustomerID = @CustomerID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</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 CustomersGridView_RowDeleted(ByVal sender As Object, ByVal e As GridViewDeletedEventArgs)
' Use the Exception property to determine whether an exception
' occurred during the delete operation.
If e.Exception Is Nothing Then
' Use the AffectedRows property to determine whether the
' record was deleted. Sometimes an error might occur that
' does not raise an exception, but prevents the delete
' operation from completing.
If e.AffectedRows = 1 Then
Message.Text = "Record deleted successfully."
Else
Message.Text = "An error occurred during the delete operation."
End If
Else
' Insert the code to handle the exception.
Message.Text = "An error occurred during the delete operation."
' Use the ExceptionHandled property to indicate that the
' exception is already handled.
e.ExceptionHandled = True
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewDeletedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewDeletedEventArgs Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames property as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
autogeneratedeletebutton="true"
datakeynames="CustomerID"
onrowdeleted="CustomersGridView_RowDeleted"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
deletecommand="Delete from Customers where CustomerID = @CustomerID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
Remarks
Use the AffectedRows property to determine the number of records affected by the delete operation. This property is commonly used to verify that the correct number of records was deleted in the following situations:
Verify that only a single record was deleted. Sometimes an improperly written delete statement can delete multiple records.
Verify that a record was deleted when an error occurs during the delete operation that does not raise an exception.
Verify that a record was deleted when a data source control that supports optimistic concurrency (such as the SqlDataSource and ObjectDataSource controls) has its ConflictDetection property set to the
ConflictOptions.CompareAllValues
enumeration value. Under this setting, a record that has been modified by another user concurrently might not be deleted.