Comment : supprimer les enregistrements dans une base de données

Mise à jour : novembre 2007

Pour supprimer des enregistrements d'une base de données, utilisez la méthode TableAdapter.Update ou TableAdapter.Delete. Si votre application n'utilise pas les TableAdapters, vous pouvez utiliser des objets de commande pour supprimer les enregistrements d'une base de données (par exemple, ExecuteNonQuery).

La méthode TableAdapter.Update est adoptée en général lorsque votre application utilise des groupes de données pour stocker des données, alors que la méthode TableAdapter.Delete est adoptée en général lorsque votre application utilise des objets pour stocker des données.

Si votre TableAdapter n'a pas de méthode Delete, cela signifie soit qu'il est configuré pour utiliser des procédures stockées soit que sa propriété GenerateDBDirectMethods a la valeur false. Essayez de donner à la propriété GenerateDBDirectMethods du TableAdapter la valeur true à partir du Concepteur de Dataset puis enregistrez le groupe de données pour régénérer le TableAdapter. Si le TableAdapter n'a toujours pas de méthode Delete, la table ne fournit probablement pas assez d'informations de schéma pour faire la distinction entre des lignes individuelles (par exemple, aucune clé primaire n'est définie sur la table).

Supprimer des enregistrements à l'aide de TableAdapters

Les TableAdapters offrent des moyens différents de supprimer les enregistrements d'une base de données en fonction des besoins de votre application.

Si votre application utilise des groupes de données pour stocker des données, il vous suffit de supprimer les enregistrements de la DataTable dans le DataSet, puis d'appeler la méthode TableAdapter.Update. La méthode TableAdapter.Update prend tous les changements apportés à la table de données et les envoie à la base de données (y compris les enregistrements insérés, modifiés et supprimés).

Pour supprimer des enregistrements d'une base de données à l'aide de la méthode TableAdapter.Update

  • Supprimez des enregistrements de la DataTable voulue en supprimant les objets DataRow de la table. Pour plus d'informations, consultez Comment : supprimer des lignes d'un DataTable. Après avoir supprimé les lignes de DataTable, appelez la méthode TableAdapter.Update. Vous pouvez contrôler la quantité de données à mettre à jour en passant un DataSet entier, un DataTable, un tableau de DataRow, ou une seule DataRow. Le code suivant indique comment supprimer un enregistrement d'une DataTable et appeler la méthode TableAdapter.Update pour communiquer le changement et supprimer la ligne de la base de données. (Cet exemple utilise la table Region de la base de données Northwind.)

    ' Locate the row to delete.
    Dim oldRegionRow As NorthwindDataSet.RegionRow
    oldRegionRow = NorthwindDataSet._Region.FindByRegionID(5)
    
    ' Delete the row from the dataset
    oldRegionRow.Delete()
    
    ' Delete the row from the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    
    // Locate the row to delete.
    NorthwindDataSet.RegionRow oldRegionRow;
    oldRegionRow = northwindDataSet.Region.FindByRegionID(5);
    
    // Delete the row from the dataset
    oldRegionRow.Delete();
    
    // Delete the row from the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Si votre application utilise des objets pour stocker les données dans votre application, vous pouvez utiliser les méthodes DBDirect du TableAdapter pour supprimer les données directement de la base de données. L'appel à la méthode Delete supprime des enregistrements de la base de données en fonction des valeurs de paramètre passées.

Pour supprimer des enregistrements d'une base de données à l'aide de la méthode TableAdapter.Delete

  • Appelez la méthode Delete du TableAdapter, en passant les valeurs pour chaque colonne en tant que paramètres de la méthode Delete. (Cet exemple utilise la table Region de la base de données Northwind.)

    Remarque :

    Si vous n'avez pas d'instance disponible, instanciez le TableAdapter que vous voulez utiliser.

    Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter
    
    regionTableAdapter.Delete(5, "NorthWestern")
    
    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Delete(5, "NorthWestern");
    

Supprimer des enregistrements à l'aide d'objets de commande

L'exemple suivant supprime des enregistrements directement d'une base de données à l'aide d'objets de commande. Pour plus d'informations concernant l'utilisation d'objets de commande pour exécuter des commandes et des procédures stockées, consultez Extraction de données dans votre application.

Pour supprimer des enregistrements d'une base de données à l'aide d'objets de commande

  • Créez un objet de commande, définissez ses propriétés Connection, CommandType et CommandText. (Cet exemple utilise la table Region de la base de données Northwind.)

    Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")
    
    Dim cmd As New System.Data.SqlClient.SqlCommand
    cmd.CommandType = System.Data.CommandType.Text
    cmd.CommandText = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'"
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    cmd.ExecuteNonQuery()
    sqlConnection1.Close()
    
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
        new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING ");
    
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'";
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
    

Sécurité

Vous devez avoir accès à la base de données à laquelle vous essayez de vous connecter et détenir les autorisations permettant de supprimer des enregistrements dans la table voulue.

Voir aussi

Tâches

Comment : insérer de nouveaux enregistrements dans une base de données

Comment : mettre à jour les enregistrements dans une base de données

Comment : enregistrer les données d'un objet dans une base de données

Concepts

Vue d'ensemble de TableAdapter

Autres ressources

Mise en route avec l'accès aux données

Connexion aux données dans Visual Studio

Préparation de votre application pour recevoir des données

Extraction de données dans votre application

Affichage des données sur des formulaires dans les applications Windows

Modification des données dans votre application

Validation des données

Enregistrement des données