SqlDataSourceView.OnUpdating メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim e As SqlDataSourceCommandEventArgs Me.OnUpdating(e)

イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「イベントの利用」を参照してください。
OnUpdating メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理することもできます。派生クラスでイベントを処理する場合は、この手法をお勧めします。
継承時の注意 派生クラスで OnUpdating をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnUpdating メソッドを呼び出してください。
DropDownList コントロールで、Microsoft SQL Server データベースから取得したデータを表示し、TextBox コントロールを使用してレコードを更新する方法を次のコード例に示します。この例は、SqlDataSource コントロールを使用したデータの更新時に、DbTransaction オブジェクトを使用してトランザクションのコンテキストを追加する方法を示しています。
<%@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> <BODY> <FORM 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> <P> <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user." /> <asp:TextBox id="TextBox1" runat="server" /> <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" /> <P><asp:Label id="Label2" runat="server" Text="" /> </FORM> </BODY> </HTML>
<%@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> <BODY> <FORM 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> <P> <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user." /> <asp:TextBox id="TextBox1" runat="server" /> <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" /> <P><asp:Label id="Label2" runat="server" Text="" /> </FORM> </BODY> </HTML>
<%@Page Language="VJ#" %> <%@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"> private void On_Click(Object source, System.EventArgs e) { try { SqlDataSource1.Update(); } catch (System.Exception except) { // Handle Exception } Label2.set_Text("The record was updated successfully!"); } //On_Click private void OnSqlUpdate(Object source, SqlDataSourceCommandEventArgs e) { // Log the command in the Event Log on the Web server. String logInfo = e.get_Command().get_CommandText() + " is being submitted to the database."; IEnumerator ie = e.get_Command().get_Parameters().GetEnumerator(); while (ie.MoveNext()) { DbParameter param = ((DbParameter)(ie.get_Current())); logInfo = logInfo + " " + param.get_ParameterName()+ "=" + param.get_Value(); } EventLog log = new EventLog(); log.set_Log("Application"); log.set_Source("ASP.NET Example"); log.WriteEntry(logInfo); } //OnSqlUpdate </SCRIPT> <HTML> <BODY> <FORM runat="server"> <asp:SqlDataSource id="SqlDataSource1" runat="server" ConnectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;" SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees" UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID" OnUpdating="OnSqlUpdate"> <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> <P> <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user." /> <asp:TextBox id="TextBox1" runat="server" /> <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" /> <P><asp:Label id="Label2" runat="server" Text="" /> </FORM> </BODY> </HTML>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からSqlDataSourceView.OnUpdating メソッドを検索する場合は、下記のリンクをクリックしてください。

- SqlDataSourceView.OnUpdating メソッドのページへのリンク