この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

SqlDataSource.Update メソッド ()

 

公開日: 2016年10月

使って更新操作を実行、 UpdateCommand 内にある SQL 文字列とパラメーター、 UpdateParameters コレクションです。

名前空間:   System.Web.UI.WebControls
アセンブリ:  System.Web (System.Web.dll 内)

public int Update()

戻り値

Type: System.Int32

基になるデータベースで更新された行の数を表す値。

Exception Condition
InvalidOperationException

SqlDataSource 基になるデータ ソースとの接続を確立することはできません。

Update メソッドを呼び出すときに自動的に、 GridView, 、DetailsView, 、および FormView ポストバック時のデータが変更されている場合を制御します。 他のコントロールで変更されたデータを Update 中にポストバック時に、メソッドを明示的に呼び出すことができる、 Load イベントです。

前に、 Update 操作を実行する、 OnUpdating させるメソッドが呼び出される、 Updating イベントです。 パラメーターの値を確認し、前に処理を実行する、このイベントを処理して、 Update 操作します。

後に、 Update 操作が完了すると、 OnUpdated させるメソッドが呼び出される、 Updated イベントです。 戻り値とエラー コードを分析し、後続の処理を実行する、このイベントを処理することができます。

Update メソッドからデリゲートを Update のメソッド、 SqlDataSourceView オブジェクトに関連付けられている、 SqlDataSource コントロールです。 更新操作を実行する、 SqlDataSourceView ビルド、 DbCommand オブジェクトを使用して、 UpdateCommand テキストと、関連付けられたすべて UpdateParameters プロパティし、実行、 DbCommand 基になるデータベースに対してオブジェクトです。

System_CAPS_security セキュリティ メモ

値は、潜在的なセキュリティ上の脅威が検証を伴わないパラメーターに挿入されます。 使用して、 Updating クエリを実行する前にパラメーター値を検証するイベントです。 詳細については、「Script Exploits Overview」を参照してください。

このセクションでは、2 つのコード例を示します。 最初のコード例を使用する方法を示しています、 SqlDataSource 内のデータを表示するコントロール、 DropDownList 制御および更新のデータと、 送信 ] ボタンをクリックします。 2 番目のコード例では、Microsoft SQL Server データベースから取得されるデータを表示する方法を示します、 DropDownList を制御しを使用してレコードを更新、 TextBox コントロールです。

次のコード例を使用する方法を示しています、 SqlDataSource 内のデータを表示するコントロール、 DropDownList 制御および更新のデータと、 送信 ] ボタンをクリックします。 UpdateCommand プロパティはパラメーター化された SQL ステートメントと 2 つ ControlParameter へパラメーターの追加、 UpdateParameters コレクションです。 ときに、 送信 ] ボタンをクリックすると、 OnClick を呼び出すイベントが処理される、 Update メソッドに明示的にします。

<%@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">
 private void On_Click(Object source, EventArgs e) {
    try {
        SqlDataSource1.Update();
    }
    catch (Exception except) {
        // Handle the Exception.
    }

    Label2.Text="The record was updated successfully!";
 }
</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">
          <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>

次のコード例では、内の SQL Server データベースから取得したデータを表示、 DropDownList を制御しを使用してレコードを更新、 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>

.NET Framework
2.0 以降で使用可能
トップに戻る
表示: