GridViewDeletedEventArgs.AffectedRows Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá počet řádků ovlivněných operací odstranění.
public:
property int AffectedRows { int get(); };
public int AffectedRows { get; }
member this.AffectedRows : int
Public ReadOnly Property AffectedRows As Integer
Hodnota vlastnosti
Počet řádků ovlivněných operací odstranění
Příklady
Následující příklad ukazuje, jak použít AffectedRows vlastnost k ověření, že záznam byl odstraněn během operace odstraně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 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>
Poznámky
AffectedRows Pomocí vlastnosti určete počet záznamů ovlivněných operací odstranění. Tato vlastnost se běžně používá k ověření správného počtu záznamů v následujících situacích:
Ověřte, že byl odstraněn pouze jeden záznam. Někdy může nesprávně napsaný příkaz delete odstranit více záznamů.
Ověřte, že se záznam odstranil, když dojde k chybě během operace odstranění, která nevyvolá výjimku.
Ověřte, že byl záznam odstraněn, pokud má ovládací prvek zdroje dat, který podporuje optimistickou souběžnost (například SqlDataSource ovládací prvky) ConflictDetection nastavenou jeho vlastnost na hodnotu výčtu
ConflictOptions.CompareAllValues
ObjectDataSource. V tomto nastavení nemusí být odstraněn záznam, který byl současně změněn jiným uživatelem.