Freigeben über


SqlDataSourceCommandEventArgs Klasse

Definition

Stellt Daten für die Ereignisse Updating, Deleting und Inserting des SqlDataSource-Steuerelements bereit.

public ref class SqlDataSourceCommandEventArgs : System::ComponentModel::CancelEventArgs
public class SqlDataSourceCommandEventArgs : System.ComponentModel.CancelEventArgs
type SqlDataSourceCommandEventArgs = class
    inherit CancelEventArgs
Public Class SqlDataSourceCommandEventArgs
Inherits CancelEventArgs
Vererbung
SqlDataSourceCommandEventArgs
Abgeleitet

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Aus einer Microsoft SQL Server-Datenbank abgerufene Daten in einem DropDownList Steuerelement angezeigt und der Datensatz mithilfe eines -Steuerelements TextBox aktualisiert wird. Das Beispiel zeigt, wie Sie ein DbTransaction -Objekt verwenden können, um Transaktionskontext hinzuzufügen, wenn Sie das -Steuerelement zum Aktualisieren von SqlDataSource Daten verwenden.

<%@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>

Hinweise

Durch Hinzufügen eines Ereignishandlerdelegats zum Behandeln der UpdatingEreignisse , Insertingoder Deleting können Sie alle zusätzlichen erforderlichen Vorverarbeitungsschritte ausführen oder den Datenbankbefehl vollständig abbrechen.

Da die SqlDataSourceCommandEventArgs -Klasse von der CancelEventArgs -Klasse abgeleitet wird, können Sie einen ausstehenden SqlDataSource Datenbankbefehl abbrechen, indem Sie die Cancel -Eigenschaft auf truefestlegen. Sie können die Eigenschaften , CommandTextParameters auflistung und andere Befehlseigenschaften untersuchen und bearbeiten, bevor Sie den Befehl ausführen, indem Sie auf das Objekt zugreifen, das DbCommand von der Command -Eigenschaft verfügbar gemacht wird.

Die SqlDataSourceCommandEventArgs -Klasse wird in den OnUpdatingMethoden , OnInsertingund OnDeleting verwendet, um Zugriff auf einen SqlDataSource Datenbankbefehl zu gewähren, bevor er ausgeführt wird. Das SqlDataSource Steuerelement macht viele Ereignisse verfügbar, die Sie behandeln können, um während eines Datenvorgangs mit den zugrunde liegenden Datenobjekten zu arbeiten. In der folgenden Tabelle sind die Ereignisse und die zugeordneten EventArgs Und Ereignishandlerklassen aufgeführt, um Sie besser zu den verschiedenen Ereignissen zu führen, die dem Lebenszyklus eines Datenvorgangs mithilfe des SqlDataSource -Steuerelements entsprechen.

Ereignis EventArgs EventHandler
Selecting tritt auf, bevor die Daten abgerufen werden. SqlDataSourceSelectingEventArgs SqlDataSourceSelectingEventHandler
Inserting, Updatingtritt Deleting auf, bevor ein Einfüge-, Aktualisierungs- oder Löschvorgang ausgeführt wird. SqlDataSourceCommandEventArgs SqlDataSourceCommandEventHandler
Selected, Inserted, UpdatedDeleted treten auf, nachdem die Datenabruf-, Einfüge-, Aktualisierungs- oder Löschvorgänge abgeschlossen wurden. SqlDataSourceStatusEventArgs SqlDataSourceStatusEventHandler

Konstruktoren

SqlDataSourceCommandEventArgs(DbCommand)

Initialisiert eine neue Instanz der SqlDataSourceCommandEventArgs-Klasse unter Verwendung des angegebenen Datenbankbefehlsobjekts.

Eigenschaften

Cancel

Ruft einen Wert ab, der angibt, ob das Ereignis abgebrochen werden soll, oder legt diesen fest.

(Geerbt von CancelEventArgs)
Command

Ruft den ausstehenden Datenbankbefehl ab.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen