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