SqlDataSourceCommandEventArgs Klas

Definitie

Biedt gegevens voor de Updatingen DeletingInserting gebeurtenissen van het SqlDataSource besturingselement.

public ref class SqlDataSourceCommandEventArgs : System::ComponentModel::CancelEventArgs
public class SqlDataSourceCommandEventArgs : System.ComponentModel.CancelEventArgs
type SqlDataSourceCommandEventArgs = class
    inherit CancelEventArgs
Public Class SqlDataSourceCommandEventArgs
Inherits CancelEventArgs
Overname
SqlDataSourceCommandEventArgs
Afgeleid

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevens weergeeft die zijn opgehaald uit een Microsoft SQL Server-database in een besturingselement DropDownList en hoe u de record bijwerkt met behulp van een besturingselement TextBox. In het voorbeeld ziet u hoe u een DbTransaction object kunt gebruiken om transactiecontext toe te voegen wanneer u het SqlDataSource besturingselement gebruikt om gegevens bij te werken.

<%@Page  Language="C#" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<%@Import Namespace="System.Data.SqlClient" %>
<%@Import Namespace="System.Diagnostics" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

 private void On_Click(Object source, EventArgs e) {    
    SqlDataSource1.Update();
 }

 private void OnSqlUpdating(Object source, SqlDataSourceCommandEventArgs e) {
    DbCommand command = e.Command;
    DbConnection cx  = command.Connection;    
    cx.Open();    
    DbTransaction tx = cx.BeginTransaction();
    command.Transaction = tx;
 }

 private void OnSqlUpdated(Object source, SqlDataSourceStatusEventArgs e) {
    DbCommand command = e.Command;
    DbTransaction tx = command.Transaction;
    
    // In this code example the OtherProcessSucceeded variable represents
    // the outcome of some other process that occurs whenever the data is 
    // updated, and must succeed for the data change to be committed. For 
    // simplicity, we set this value to true. 
    bool OtherProcessSucceeded = true;
    
    if (OtherProcessSucceeded) {
        tx.Commit();
        Label2.Text="The record was updated successfully!";
    }
    else {
        tx.Rollback();
        Label2.Text="The record was not updated.";
    }
 }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees"
          UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID"
          OnUpdating="OnSqlUpdating"
          OnUpdated ="OnSqlUpdated">
          <UpdateParameters>
              <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/>
              <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/>
          </UpdateParameters>
      </asp:SqlDataSource>

      <asp:DropDownList
          id="DropDownList1"
          runat="server"
          DataTextField="LastName"
          DataValueField="EmployeeID"
          DataSourceID="SqlDataSource1">
      </asp:DropDownList>

      <br />
      <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user."
        AssociatedControlID="TextBox1" />
      <asp:TextBox id="TextBox1" runat="server" />
      <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" />

      <br /><asp:Label id="Label2" runat="server" Text="" />

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<%@Import Namespace="System.Diagnostics" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

 Sub On_Click(ByVal source As Object, ByVal e As EventArgs)
        SqlDataSource1.Update()
 End Sub 'On_Click

 Sub On_Sql_Updating(ByVal source As Object, ByVal e As SqlDataSourceCommandEventArgs)
     Dim command as DbCommand
     Dim connection as DbConnection
     Dim transaction as DbTransaction
     
     command    = e.Command
     connection = command.Connection     
     connection.Open()     
     transaction = connection.BeginTransaction()
     command.Transaction = transaction
 
 End Sub 'On_Sql_Updating
 
 Sub On_Sql_Updated(ByVal source As Object, ByVal e As SqlDataSourceStatusEventArgs)
 
    Dim command As DbCommand
    Dim transaction As DbTransaction
    
    command = e.Command
    transaction = command.Transaction
    
    ' In this code example the OtherProcessSucceeded variable represents
    ' the outcome of some other process that occurs whenever the data is 
    ' updated, and must succeed for the data change to be committed. For 
    ' simplicity, we set this value to true. 
    Dim OtherProcessSucceeded as Boolean = True
    
    If (OtherProcessSucceeded) Then
        transaction.Commit()
        Label2.Text="The record was updated successfully!"
    Else    
        transaction.Rollback()
        Label2.Text="The record was not updated."
    End If
 End Sub ' On_Sql_Updated
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees"
          UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID"
          OnUpdating="On_Sql_Updating"
          OnUpdated ="On_Sql_Updated">
          <UpdateParameters>
              <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/>
              <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/>
          </UpdateParameters>
      </asp:SqlDataSource>

      <asp:DropDownList
          id="DropDownList1"
          runat="server"
          DataTextField="LastName"
          DataValueField="EmployeeID"
          DataSourceID="SqlDataSource1">
      </asp:DropDownList>

      <br />
      <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user."
        AssociatedControlID="TextBox1" />
      <asp:TextBox id="TextBox1" runat="server" />
      <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" />

      <br /><asp:Label id="Label2" runat="server" Text="" />

    </form>
  </body>
</html>

Opmerkingen

Door een gemachtigde van een gebeurtenishandler toe te voegen om de Updating, Insertingof Deleting gebeurtenissen af te handelen, kunt u eventuele extra voorverwerking uitvoeren die vereist is of de databaseopdracht volledig annuleren.

Omdat de SqlDataSourceCommandEventArgs klasse is afgeleid van de CancelEventArgs klasse, kunt u een databaseopdracht die in behandeling is SqlDataSource annuleren door de Cancel eigenschap in te stellen op true. U kunt de CommandTexteigenschappen, Parameters verzameling en andere opdrachten onderzoeken en bewerken voordat u de opdracht uitvoert door het DbCommand object te openen dat door de Command eigenschap wordt weergegeven.

De SqlDataSourceCommandEventArgs klasse wordt gebruikt in de OnUpdating, OnInsertingen OnDeleting methoden om toegang te bieden tot een SqlDataSource databaseopdracht voordat deze wordt uitgevoerd. Het SqlDataSource besturingselement bevat veel gebeurtenissen die u tijdens een gegevensbewerking kunt verwerken om met de onderliggende gegevensobjecten te werken. De volgende tabel bevat de gebeurtenissen en gekoppelde EventArgs en gebeurtenis-handlerklassen, zodat u beter kunt helpen bij de verschillende gebeurtenissen die overeenkomen met de levenscyclus van een gegevensbewerking met behulp van het SqlDataSource besturingselement.

Gebeurtenis EventArgs EventHandler
Selecting vindt plaats voordat de gegevens worden opgehaald. SqlDataSourceSelectingEventArgs SqlDataSourceSelectingEventHandler
Inserting Deleting, Updatingvindt plaats voordat een invoeg-, bijwerk- of verwijderbewerking wordt uitgevoerd. SqlDataSourceCommandEventArgs SqlDataSourceCommandEventHandler
Selected, , InsertedUpdatedDeleted vindt plaats nadat de bewerkingen voor het ophalen van gegevens, invoegen, bijwerken of verwijderen zijn voltooid. SqlDataSourceStatusEventArgs SqlDataSourceStatusEventHandler

Constructors

Name Description
SqlDataSourceCommandEventArgs(DbCommand)

Initialiseert een nieuw exemplaar van de SqlDataSourceCommandEventArgs klasse met behulp van het opgegeven databaseopdrachtobject.

Eigenschappen

Name Description
Cancel

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de gebeurtenis moet worden geannuleerd.

(Overgenomen van CancelEventArgs)
Command

Hiermee haalt u de opdracht database in behandeling op.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook