SqlDataSourceCommandEventArgs 类     
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 Updating 控件的 Deleting、Inserting 和 SqlDataSource 事件提供数据。
public ref class SqlDataSourceCommandEventArgs : System::ComponentModel::CancelEventArgspublic class SqlDataSourceCommandEventArgs : System.ComponentModel.CancelEventArgstype SqlDataSourceCommandEventArgs = class
    inherit CancelEventArgsPublic Class SqlDataSourceCommandEventArgs
Inherits CancelEventArgs- 继承
- 派生
示例
下面的代码示例演示如何在 控件中DropDownList显示从 Microsoft SQL Server 数据库中检索的数据,并使用 控件更新记录TextBox。 该示例演示在使用 DbTransaction 控件更新数据时 SqlDataSource 如何使用 对象添加事务上下文。
<%@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>
注解
通过添加事件处理程序委托来处理 Updating、 Inserting或 Deleting 事件,可以执行所需的任何其他预处理或完全取消数据库命令。
              SqlDataSourceCommandEventArgs由于 类派生自 CancelEventArgs 类,因此可以通过将 属性设置为 Canceltrue来取消挂起SqlDataSource的数据库命令。 在运行命令之前,可以通过访问 DbCommand 属性公开Command的对象来检查和操作 CommandText、 Parameters 集合和其他命令属性。
类SqlDataSourceCommandEventArgs在 、 OnInserting和 OnDeleting 方法中使用OnUpdating,以在运行数据库命令之前提供对SqlDataSource数据库命令的访问权限。 控件 SqlDataSource 公开许多事件,可以在数据操作过程中处理这些事件来处理基础数据对象。 下表列出了事件以及关联的 EventArgs 和 事件处理程序类,以便更好地指导你使用 SqlDataSource 控件访问与数据操作的生命周期对应的各种事件。
| 事件 | EventArgs | EventHandler | 
|---|---|---|
| Selecting 在检索数据之前发生。 | SqlDataSourceSelectingEventArgs | SqlDataSourceSelectingEventHandler | 
| Inserting、 Updating、 Deleting 发生在执行插入、更新或删除操作之前。 | SqlDataSourceCommandEventArgs | SqlDataSourceCommandEventHandler | 
| Selected、 Inserted、 Updated、、 Deleted 在数据检索、插入、更新或删除操作完成后发生。 | SqlDataSourceStatusEventArgs | SqlDataSourceStatusEventHandler | 
构造函数
| SqlDataSourceCommandEventArgs(DbCommand) | 使用指定的数据库命令对象初始化 SqlDataSourceCommandEventArgs 类的新实例。 | 
属性
| Cancel | 获取或设置指示是否应取消事件的值。(继承自 CancelEventArgs) | 
| Command | 获得挂起的数据库命令。 | 
方法
| Equals(Object) | 确定指定对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 作为默认哈希函数。(继承自 Object) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) |