次の方法で共有


SqlDataSource.DeleteParameters プロパティ

定義

DeleteCommand コントロールに関連付けられた SqlDataSourceView オブジェクトから、SqlDataSource プロパティで使用されるパラメーターを格納するパラメーター コレクションを取得します。

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

プロパティ値

ParameterCollection プロパティによって使用されるパラメーターを格納している DeleteCommand

属性

次のコード例では、Northwind データベースから注文を DeleteCommand 削除するようにテキストを設定する方法を示します。 最初に、データは Orders テーブルから取得され、コントロールに DropDownList 表示されます。 などのDropDownListデータ バインド コントロールを使用する場合は、プロパティをDelete明示的に宣言DeleteParametersし、 メソッドを呼び出す必要があります (や などのGridViewDetailsView他のコントロールとは異なり、パラメーターを自動的に設定し、データ ソース コントロールで を呼び出Deleteします)。 この例では、OnClickイベントはプライベート OnDelete イベント ハンドラーに委任され、コントロールの SqlDataSource メソッドをDelete明示的に呼び出します。

<%@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 OnDelete(Object sender, EventArgs e) {
    SqlDataSource1.Delete();
}
</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 OrderID FROM Orders"
                DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;">
                <DeleteParameters>
                    <asp:ControlParameter Name="OrderID" ControlId="DropDownList1" PropertyName="SelectedValue" />
                </DeleteParameters>
            </asp:SqlDataSource>

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="OrderID"
                DataValueField="OrderID"
                DataSourceID="SqlDataSource1">
            </asp:DropDownList>

            <asp:Button
                id="Button1"
                runat="server"
                Text="Delete Order"
                OnClick="OnDelete">
            </asp:Button>

        </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_Delete(ByVal sender As Object, ByVal e As EventArgs)
    SqlDataSource1.Delete()
 End Sub 'On_Delete
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>ASP.NET Example</title>
</head>

    <body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommand="SELECT OrderID FROM Orders"
                DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;">
                <DeleteParameters>
                    <asp:ControlParameter Name="OrderID" ControlId="DropDownList1" PropertyName="SelectedValue" />
                </DeleteParameters>
            </asp:SqlDataSource>

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="OrderID"
                DataValueField="OrderID"
                DataSourceID="SqlDataSource1">
            </asp:DropDownList>

            <asp:Button
                id="Button1"
                runat="server"
                Text="Delete Order"
                OnClick="On_Delete">
            </asp:Button>

        </form>
    </body>
</html>

注釈

プロパティに DeleteCommand パラメーター化された SQL クエリが含まれている場合、 DeleteParameters コレクションには SQL 文字列のパラメーター プレースホルダーに対応する Parameter オブジェクトが含まれます。

注意

コントロールにバインドSqlDataSourceするデータ バインド コントロールに、コレクション内のパラメーター名と一致する名前DeleteParametersが含まれていないBoundFieldことを確認します。 バインドされたフィールドと同じ名前のパラメーターは SQL コマンドから除外され、"パラメーターが指定されませんでした" というエラーが発生する可能性があります。

プロパティが ConflictDetection 値に CompareAllValues 設定されている場合、データの古い値と新しい値の両方に対してパラメーターが作成されます。 古い値のパラメーターには、 プロパティに従って名前が OldValuesParameterFormatString 付けられます。

ADO.NET プロバイダーによっては、コレクション内のパラメーターの順序が DeleteParameters 重要になる場合があります。 プロバイダーと System.Data.Odbc プロバイダーはSystem.Data.OleDb、パラメーター化された SQL クエリでパラメーターが表示される順序に従って、コレクション内のパラメーターを関連付けます。 コントロールの既定の ADO.NET プロバイダーであるプロバイダーSqlDataSourceSystem.Data.SqlClient、 パラメーターの名前と SQL クエリのプレースホルダーを照合して、コレクション内のパラメーターを関連付けます。 パラメーター化された SQL クエリとコマンドの詳細については、「 SqlDataSource コントロールでのパラメーターの使用」を参照してください。

プロパティは DeleteParameters 、コントロールに DeleteParameters 関連付けられている オブジェクトに SqlDataSourceView 含まれるプロパティを SqlDataSource 取得します。

重要

値は検証なしでパラメーターに挿入されます。これは、セキュリティ上の脅威になる可能性があります。 イベントを Deleting 使用して、クエリを実行する前にパラメーター値を検証します。 詳細については、「スクリプトによる攻略の概要」を参照してください。

適用対象

こちらもご覧ください