SqlDataSource.Updating Olay

Tanım

Güncelleştirme işleminden önce gerçekleşir.

C#
public event System.Web.UI.WebControls.SqlDataSourceCommandEventHandler Updating;

Olay Türü

Örnekler

Aşağıdaki kod örneği, microsoft SQL Server veritabanından alınan verilerin bir DropDownList denetimde nasıl görüntüleneceğini ve denetimi kullanarak TextBox kaydın nasıl güncelleştirildiğini gösterir. Örnekte, verileri güncelleştirmek için denetimi kullanırken SqlDataSource işlem bağlamı eklemek için bir DbTransaction nesneyi nasıl kullanabileceğiniz gösterilmektedir.

ASP.NET (C#)
<%@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>

Açıklamalar

Updating Denetim güncelleştirme işlemini gerçekleştirmeden önce SqlDataSource uygulamanıza özgü ek başlatma işlemleri gerçekleştirmek, parametrelerin değerlerini doğrulamak veya parametre değerlerini değiştirmek için olayı işleyin. Olay işleyicisi temsilcisi çağrıldığında temel alınan veri kaynağına bağlantı henüz açık değildir. Bu nedenle, nesnesi tarafından SqlDataSourceCommandEventArgs kullanıma sunulan nesnede DbCommandCancel yöntemini çağırarak veritabanı işlemini doğrudan iptal Update edemezsiniz. Ancak, özelliğini SqlDataSourceCommandEventArgstrueolarak ayarlayarak Cancel veritabanı işlemini iptal edebilirsiniz.

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Önemli

Değerler, olası bir güvenlik tehdidi olan doğrulama olmadan parametrelere eklenir. Sorguyu Updating yürütmeden önce parametre değerlerini doğrulamak için olayını kullanın. Daha fazla bilgi için bkz . Betik Açıklarına Genel Bakış.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Ayrıca bkz.