SqlDataSource.DeleteParameters Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém a coleção de parâmetros que contém os parâmetros usados pela propriedade DeleteCommand do objeto SqlDataSourceView associado ao controle 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
Valor da propriedade
Um ParameterCollection que contém os parâmetros usados pela propriedade DeleteCommand.
- Atributos
Exemplos
O exemplo de código a seguir demonstra como definir o DeleteCommand texto para excluir um pedido do banco de dados Northwind. Inicialmente, os dados são recuperados da tabela Pedidos e exibidos em um DropDownList controle . Você deve declarar DeleteParameters explicitamente a propriedade e chamar o Delete método ao usar controles associados a dados, como DropDownList (ao contrário de outros controles, como GridView e DetailsView, que preenchem automaticamente os parâmetros e chamam Delete em um controle de fonte de dados). Neste exemplo, o OnClick evento é delegado ao manipulador de eventos privado OnDelete
, que chama explicitamente o Delete método do SqlDataSource controle.
<%@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>
Comentários
Se a DeleteCommand propriedade contiver uma consulta SQL parametrizada, a DeleteParameters coleção conterá quaisquer Parameter objetos que correspondam aos espaços reservados de parâmetro na cadeia de caracteres SQL.
Observação
Certifique-se de que nenhum BoundField controle no controle associado a dados que você associa ao SqlDataSource controle tenha nomes que correspondam a nomes de parâmetro na DeleteParameters coleção. Os parâmetros que têm o mesmo nome que os campos associados são excluídos do comando SQL e um erro de "parâmetro não foi fornecido" pode resultar.
Se a ConflictDetection propriedade for definida como o CompareAllValues valor, os parâmetros serão criados para os valores antigos e novos dos dados. Os parâmetros para os valores antigos são nomeados de acordo com a OldValuesParameterFormatString propriedade .
Dependendo do provedor ADO.NET, a ordem dos parâmetros na DeleteParameters coleção pode ser importante. Os System.Data.OleDb provedores e System.Data.Odbc associam os parâmetros na coleção de acordo com a ordem em que os parâmetros aparecem na consulta SQL parametrizada. O System.Data.SqlClient provedor, que é o provedor de ADO.NET padrão para o SqlDataSource controle, associa os parâmetros na coleção combinando o nome do parâmetro com o espaço reservado na consulta SQL. Para obter mais informações sobre consultas e comandos SQL parametrizados, consulte Usando parâmetros com o controle SqlDataSource.
A DeleteParameters propriedade recupera a DeleteParameters propriedade contida pelo SqlDataSourceView objeto associado ao SqlDataSource controle .
Importante
Os valores são inseridos em parâmetros sem validação, o que é uma possível ameaça à segurança. Use o Deleting evento para validar valores de parâmetro antes de executar a consulta. Para obter mais informações, consulte Visão geral de explorações de script.