SqlDataSource.UpdateParameters プロパティ

定義

UpdateCommand コントロールに関連付けられた SqlDataSourceView コントロールから、SqlDataSource プロパティで使用されるパラメーターを格納するパラメーター コレクションを取得します。Gets the parameters collection that contains the parameters that are used by the UpdateCommand property from the SqlDataSourceView control that is associated with the SqlDataSource control.

public:
 property System::Web::UI::WebControls::ParameterCollection ^ UpdateParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection UpdateParameters { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.UpdateParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property UpdateParameters As ParameterCollection

プロパティ値

ParameterCollection

ParameterCollection プロパティによって使用されるパラメーターを格納している UpdateCommandA ParameterCollection that contains the parameters used by the UpdateCommand property.

属性

次のコード例は、コントロールを使用し SqlDataSource てコントロールにデータを表示 DropDownList し、[ 送信 ] ボタンがクリックされたときにデータを更新する方法を示しています。The following code example demonstrates how to use a SqlDataSource control to display data in a DropDownList control and update data when the Submit button is clicked. パラメーター化された SQL ステートメントを使用してを設定し、 UpdateCommand 2 つの ControlParameter パラメーターをコレクションに追加し UpdateParameters ます。The UpdateCommand is set with a parameterized SQL statement and two ControlParameter parameters are added to the UpdateParameters collection. [ 送信 ] ボタンをクリックすると、 OnClick イベントが処理され、メソッドが明示的に呼び出され Update ます。When the Submit button is clicked, the OnClick event is handled to call the Update method explicitly.

重要

この例には、セキュリティ上の脅威となる可能性のあるユーザー入力を受け付けるテキストボックスが含まれています。検証なしでパラメーターに値が挿入されます。これは、潜在的なセキュリティ上の脅威でもあります。This example includes a text box that accepts user input, which is a potential security threat, and values are inserted into parameters without validation, which is also a potential security threat. クエリを Inserting 実行する前に、イベントを使用してパラメーター値を検証してください。Use the Inserting event to validate parameter values before executing the query. 詳細については、「スクリプトによる攻略の概要」を参照してください。For more information, see Script Exploits Overview.

<%@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>
<%@Page  Language="VB" %>
<!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)
    Try
        SqlDataSource1.Update()
    Catch except As Exception
        ' Handle the Exception.
    End Try

    Label2.Text="The record was updated successfully!"

 End Sub 'On_Click
</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 クエリが含まれている場合、コレクションには、 UpdateCommand UpdateParameters Parameter SQL 文字列のパラメータープレースホルダーに対応するすべてのオブジェクトが含まれます。If the UpdateCommand property contains a parameterized SQL query, the UpdateParameters collection contains any Parameter objects that correspond to the parameter placeholders in the SQL string.

パラメーター名は、プロパティの影響を受ける可能性があり OldValuesParameterFormatString ます。特に、名前が主キー (データバインドコントロールのプロパティを使用して指定されたキーなど) を識別する場合、 DataKeyNames または ConflictDetection プロパティが値に設定され、 CompareAllValues のセット oldValues が対応するデータメソッドに渡される場合の削除と更新のシナリオで発生します。Parameter names might be affected by the OldValuesParameterFormatString property, specifically if the name identifies a primary key, such as a key specified using the DataKeyNames property of the data-bound control, or in delete and update scenarios where the ConflictDetection property is set to the CompareAllValues value and a set of oldValues are passed to the corresponding data method. この場合、書式文字列はコレクション内の各パラメーター名に適用され oldValues ます。In this case, the format string is applied to each parameter name in the oldValues collection.

ADO.NET プロバイダーによっては、コレクション内のパラメーターの順序が UpdateParameters 重要になる場合があります。The order of the parameters in the UpdateParameters collection might be important, depending on the ADO.NET provider. System.Data.OleDbおよびプロバイダーは、 System.Data.Odbc パラメーター化された SQL クエリでパラメーターが表示される順序に従って、コレクション内のパラメーターを関連付けます。The System.Data.OleDb and System.Data.Odbc providers associate the parameters in the collection according to the order that the parameters appear in the parameterized SQL query. プロバイダーは、 System.Data.SqlClient コントロールの既定の ADO.NET プロバイダーで、 SqlDataSource パラメーターの名前と SQL クエリのプレースホルダーエイリアスを照合することによって、コレクション内のパラメーターを関連付けます。The System.Data.SqlClient provider, which is the default ADO.NET provider for the SqlDataSource control, associates the parameters in the collection by matching the name of the parameter with a placeholder alias in the SQL query. パラメーター化された SQL クエリとコマンドの詳細については、「 SqlDataSource コントロールでのパラメーターの使用」を参照してください。For more information about parameterized SQL queries and commands, see Using Parameters with the SqlDataSource Control.

プロパティは、 UpdateParameters UpdateParameters SqlDataSourceView コントロールに関連付けられているオブジェクトに含まれるプロパティを取得し SqlDataSource ます。The UpdateParameters property retrieves the UpdateParameters property that is contained by the SqlDataSourceView object that is associated with the SqlDataSource control.

重要

値は、検証なしでパラメーターに挿入されます。これは、セキュリティ上の脅威となる可能性があります。Values are inserted into parameters without validation, which is a potential security threat. クエリを Filtering 実行する前に、イベントを使用してパラメーター値を検証してください。Use the Filtering event to validate parameter values before executing the query. 詳細については、「スクリプトによる攻略の概要」を参照してください。For more information, see Script Exploits Overview.

適用対象

こちらもご覧ください