SqlDataSource.DeleteCommand Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit la chaîne SQL utilisée par le SqlDataSource contrôle pour supprimer des données de la base de données sous-jacente.
public:
property System::String ^ DeleteCommand { System::String ^ get(); void set(System::String ^ value); };
public string DeleteCommand { get; set; }
member this.DeleteCommand : string with get, set
Public Property DeleteCommand As String
Valeur de propriété
Chaîne SQL utilisée SqlDataSource pour supprimer des données.
Exemples
L’exemple de code suivant montre comment définir le DeleteCommand texte pour supprimer une commande de la table Orders de la base de données Northwind. Les données sont récupérées à partir de la table Orders et affichées dans un GridView contrôle. Le GridView bouton Supprimer s’affiche automatiquement lorsque la AutoGenerateDeleteButton propriété est définie truesur . En outre, lorsque le bouton Supprimer est cliqué, le GridView contrôle remplit automatiquement la DeleteParameters collection et appelle la Delete méthode. Enfin, étant donné que cet exemple de code supprime des données, un gestionnaire d’événements est ajouté pour tenter de sauvegarder la base de données sur le disque avant l’exécution de l’opération Delete .
<%@Page Language="C#" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!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 OnRecordDeleting(Object source, SqlDataSourceCommandEventArgs e) {
// Cancel the delete operation if the checkbox is not checked.
if (!CheckBox1.Checked) {
e.Cancel = true;
Label1.Text = "The command was cancelled because the CheckBox was not checked.";
}
}
private void OnRecordDeleted(object source, SqlDataSourceStatusEventArgs e) {
Label1.Text = e.AffectedRows + " row(s) were deleted";
}
</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"
DataSourceMode="DataSet"
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT * FROM Orders"
DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;"
OnDeleting="OnRecordDeleting"
OnDeleted="OnRecordDeleted">
</asp:SqlDataSource>
<br />
<asp:CheckBox
id="CheckBox1"
runat="server"
autopostback="true"
text="Check To Delete Data" />
<br />
<br />
<asp:GridView
id="GridView1"
runat="server"
AutoGenerateColumns="False"
DataKeyNames="OrderID"
AutoGenerateDeleteButton="True"
AllowPaging="True"
PageSize="20"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField HeaderText="Order ID" DataField="OrderID" />
<asp:BoundField HeaderText="Customer" DataField="CustomerID" />
<asp:BoundField HeaderText="Order Placed" DataField="OrderDate" />
<asp:BoundField HeaderText="Order Shipped" DataField="ShippedDate" />
</Columns>
</asp:GridView>
<asp:Label
id="Label1"
runat="server">
</asp:Label>
</form>
</body>
</html>
<%@Page Language="VB" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!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_Record_Deleting(ByVal source As Object, ByVal e As SqlDataSourceCommandEventArgs)
' Cancel the delete operation if the checkbox is not checked.
If Not CheckBox1.Checked
e.Cancel = True
Label1.Text = "The command was cancelled because the CheckBox was not checked."
End If
End Sub 'On_Record_Deleting
Sub On_Record_Deleted(ByVal source As Object, ByVal e As SqlDataSourceStatusEventArgs)
Label1.Text = e.AffectedRows & " row(s) were deleted"
End Sub
</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"
DataSourceMode="DataSet"
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT * FROM Orders"
DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;"
OnDeleting="On_Record_Deleting"
OnDeleted="On_Record_Deleted">
</asp:SqlDataSource>
<br />
<asp:CheckBox
id="CheckBox1"
runat="server"
autopostback="true"
text="Check To Delete Data" />
<br />
<br />
<asp:GridView
id="GridView1"
runat="server"
AutoGenerateColumns="False"
DataKeyNames="OrderID"
AutoGenerateDeleteButton="True"
AllowPaging="True"
PageSize="20"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField HeaderText="Order ID" DataField="OrderID" />
<asp:BoundField HeaderText="Customer" DataField="CustomerID" />
<asp:BoundField HeaderText="Order Placed" DataField="OrderDate" />
<asp:BoundField HeaderText="Order Shipped" DataField="ShippedDate" />
</Columns>
</asp:GridView>
<asp:Label
id="Label1"
runat="server">
</asp:Label>
</form>
</body>
</html>
Remarques
Représente DeleteCommand une requête SQL ou le nom d’une procédure stockée et est utilisé par la Delete méthode.
Étant donné que différents produits de base de données utilisent différentes variétés de SQL, la syntaxe de la chaîne SQL dépend du fournisseur de ADO.NET actuel utilisé, qui est identifié par la ProviderName propriété. Si la chaîne SQL est une requête ou une commande paramétrable, la syntaxe du paramètre dépend également du fournisseur de ADO.NET utilisé. Par exemple, si le fournisseur est le System.Data.SqlClientfournisseur , qui est le fournisseur par défaut pour la SqlDataSource classe, la syntaxe du paramètre est '@parameterName'. Toutefois, si le fournisseur est défini sur le System.Data.OdbcSystem.Data.OleDbou , l’espace réservé du paramètre est '?'. Pour plus d’informations sur les requêtes et commandes SQL paramétrables, consultez Utilisation de paramètres avec le contrôle SqlDataSource.
La DeleteCommand propriété peut être une chaîne SQL ou le nom d’une procédure stockée, si la base de données prend en charge les procédures stockées.
La DeleteCommand propriété délègue à la DeleteCommand propriété de l’objet SqlDataSourceView associé au SqlDataSource contrôle.
Important
À des fins de sécurité, la DeleteCommand propriété n’est pas stockée dans l’état d’affichage. Étant donné qu’il est possible de décoder le contenu de l’état d’affichage sur le client, le stockage d’informations sensibles sur la structure de base de données dans l’état d’affichage peut entraîner une vulnérabilité de divulgation d’informations.