SqlDataSource.DeleteParameters Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'insieme di parametri che contiene i parametri utilizzati dalla proprietà DeleteCommand dall'oggetto SqlDataSourceView associato al controllo 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
Valore della proprietà
Oggetto ParameterCollection contenente i parametri utilizzati dalla proprietà DeleteCommand.
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come impostare il DeleteCommand testo per eliminare un ordine dal database Northwind. Inizialmente, i dati vengono recuperati dalla tabella Orders e visualizzati in un DropDownList controllo. È necessario dichiarare DeleteParameters in modo esplicito la proprietà e chiamare il Delete metodo quando si usano controlli associati a dati, ad esempio (a differenza di altri controlli, ad esempio DropDownListGridView e DetailsView, che popolano automaticamente i parametri e chiamano Delete su un controllo origine dati). In questo esempio l'evento OnClick viene delegato al gestore eventi privato OnDelete
, che chiama in modo esplicito il Delete metodo del SqlDataSource controllo.
<%@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>
Commenti
Se la proprietà contiene una query SQL con parametri, l'insieme DeleteCommandDeleteParameters contiene eventuali Parameter oggetti che corrispondono ai segnaposto dei parametri nella stringa SQL.
Nota
Assicurarsi che nessun BoundField controllo nel controllo associato a dati associato al controllo disponga di nomi corrispondenti a SqlDataSource qualsiasi nome di parametro nella DeleteParameters raccolta. I parametri con lo stesso nome dei campi associati vengono esclusi dal comando SQL e potrebbe verificarsi un errore "parametro non fornito".
Se la ConflictDetection proprietà è impostata sul CompareAllValues valore, i parametri vengono creati per i valori precedenti e nuovi dei dati. I parametri per i valori precedenti vengono denominati in base alla OldValuesParameterFormatString proprietà .
A seconda del provider di ADO.NET, l'ordine dei parametri nella DeleteParameters raccolta potrebbe essere importante. I System.Data.OleDb provider e System.Data.Odbc associano i parametri nella raccolta in base all'ordine in cui i parametri vengono visualizzati nella query SQL con parametri. Il System.Data.SqlClient provider, ovvero il provider di ADO.NET predefinito per il SqlDataSource controllo, associa i parametri nella raccolta associando il nome del parametro al segnaposto nella query SQL. Per altre informazioni sulle query e i comandi SQL con parametri, vedere Uso di parametri con il controllo SqlDataSource.
La DeleteParameters proprietà recupera la DeleteParameters proprietà contenuta dall'oggetto SqlDataSourceView associato al SqlDataSource controllo.
Importante
I valori vengono inseriti nei parametri senza convalida, ovvero una potenziale minaccia di sicurezza. Usare l'evento Deleting per convalidare i valori dei parametri prima di eseguire la query. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.