SqlDataSource.DeleteParameters Propiedad

Definición

Obtiene la colección de parámetros que contiene los parámetros utilizados por la propiedad DeleteCommand desde el objeto SqlDataSourceView asociado con el control SqlDataSource.Gets the parameters collection that contains the parameters that are used by the DeleteCommand property from the SqlDataSourceView object that is associated with the SqlDataSource control.

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

Valor de propiedad

ParameterCollection

ParameterCollection que contiene los parámetros utilizados por la propiedad DeleteCommand.A ParameterCollection that contains the parameters used by the DeleteCommand property.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo establecer el DeleteCommand texto para eliminar un pedido de la base de datos Northwind.The following code example demonstrates how to set the DeleteCommand text to delete an order from the Northwind database. Inicialmente, los datos se recuperan de la tabla Orders y se muestran en un DropDownList control.Initially, data is retrieved from the Orders table and displayed in a DropDownList control. Debe declarar explícitamente DeleteParameters la propiedad y llamar al Delete método al utilizar controles enlazados a datos, como DropDownList (a diferencia de otros controles, como GridView y DetailsView , que rellenan automáticamente los parámetros y llaman a Delete en un control de origen de datos).You must explicitly declare DeleteParameters property and call the Delete method when using data-bound controls, such as DropDownList (unlike other controls, such as GridView and DetailsView, which automatically populate the parameters and call Delete on a data source control). En este ejemplo, el OnClick evento se delega en el OnDelete controlador de eventos privado, que llama explícitamente al Delete método del SqlDataSource control.In this example, the OnClick event is delegated to the private OnDelete event handler, which explicitly calls the Delete method of the SqlDataSource control.

<%@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>

Comentarios

Si la DeleteCommand propiedad contiene una consulta SQL con parámetros, la DeleteParameters colección contiene cualquier Parameter objeto que se corresponda con los marcadores de posición de los parámetros de la cadena SQL.If the DeleteCommand property contains a parameterized SQL query, the DeleteParameters collection contains any Parameter objects that correspond to the parameter placeholders in the SQL string.

Nota

Asegúrese de que ningún control BoundField del control enlazado a datos que se enlaza al SqlDataSource control tenga nombres que coincidan con los nombres de parámetro de la DeleteParameters colección.Make sure that no BoundField controls in the data-bound control that you bind to the SqlDataSource control have names that match any parameter names in the DeleteParameters collection. Los parámetros que tienen el mismo nombre que los campos enlazados se excluyen del comando SQL y se puede producir el error "no se proporcionó el parámetro".Parameters that have the same name as bound fields are excluded from the SQL command, and a "parameter was not supplied" error might result.

Si la ConflictDetection propiedad se establece en el CompareAllValues valor, los parámetros se crean para los valores antiguos y nuevos de los datos.If the ConflictDetection property is set to the CompareAllValues value, the parameters are created for both the old and new values of the data. Los parámetros de los valores anteriores se denominan según la OldValuesParameterFormatString propiedad.The parameters for the old values are named according to the OldValuesParameterFormatString property.

Dependiendo del proveedor de ADO.NET, el orden de los parámetros de la DeleteParameters colección podría ser importante.Depending on the ADO.NET provider, the order of the parameters in the DeleteParameters collection might be important. Los System.Data.OleDb System.Data.Odbc proveedores y asocian los parámetros de la colección según el orden en que aparecen los parámetros en la consulta SQL con parámetros.The System.Data.OleDb and System.Data.Odbc providers associate the parameters in the collection according to the order in which the parameters appear in the parameterized SQL query. El System.Data.SqlClient proveedor, que es el proveedor ADO.net predeterminado para el SqlDataSource control, asocia los parámetros de la colección haciendo coincidir el nombre del parámetro con el marcador de posición en la consulta 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 the placeholder in the SQL query. Para obtener más información sobre los comandos y las consultas SQL con parámetros, vea usar parámetros con el control SqlDataSource.For more information about parameterized SQL queries and commands, see Using Parameters with the SqlDataSource Control.

La DeleteParameters propiedad recupera la DeleteParameters propiedad incluida en el SqlDataSourceView objeto que está asociado al SqlDataSource control.The DeleteParameters property retrieves the DeleteParameters property that is contained by the SqlDataSourceView object that is associated with the SqlDataSource control.

Importante

Los valores se insertan en parámetros sin validación, lo que es una posible amenaza de seguridad.Values are inserted into parameters without validation, which is a potential security threat. Utilice el Deleting evento para validar los valores de los parámetros antes de ejecutar la consulta.Use the Deleting event to validate parameter values before executing the query. Para más información, consulte Información general sobre los ataques mediante scripts.For more information, see Script Exploits Overview.

Se aplica a

Consulte también