Partager via


Insérer de nouveaux enregistrements dans une base de données dans des applications .NET Framework

Pour insérer de nouveaux enregistrements dans une base de données avec ADO.NET dans un projet .NET Framework, l’approche courante consiste à utiliser des méthodes TableAdapter. Les TableAdapters permettent la communication entre votre application et une base de données. Ils offrent différentes façons d’insérer de nouveaux enregistrements dans une base de données, en fonction des exigences de votre application. Vous pouvez utiliser la méthode TableAdapter.Update ou l’une des méthodes TableAdapter DBDirect (en particulier, la méthode TableAdapter.Insert).

Cet article explique comment insérer des enregistrements dans une base de données pour une application créée avec ADO.NET et .NET Framework à l’aide de Visual Basic (VB) ou C#. Si votre configuration d’application utilise Entity Framework 6, consultez Ajout d’une nouvelle entité au contexte, ou pour Entity Framework Core, consultez Ajout de données.

Remarque

Les jeux de données et les classes associées sont des technologies .NET Framework héritées qui datent du début des années 2000. Elles permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Ces technologies sont particulièrement utiles aux applications qui permettent aux utilisateurs de modifier des données, et de rendre ces changements persistants dans la base de données. Même si les jeux de données sont une technologie très efficace, nous vous recommandons d’utiliser Entity Framework Core pour les nouvelles applications .NET. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet. De plus, il présente une interface de programmation plus simple.

Prérequis

  • Pour utiliser des méthodes TableAdapter, vous devez disposer d’une instance disponible. Pour plus d’informations, consultez Créer et configurer des TableAdapters dans les applications .NET Framework.

  • Sécurité .NET : vous devez avoir accès à la base de données à laquelle vous essayez de vous connecter et être autorisé à effectuer des insertions dans la table souhaitée.

Choisir la méthode d’insertion

Il existe différentes approches pour insérer des enregistrements dans une base de données en fonction de votre scénario d’application. Les options sont décrites dans le tableau suivant :

Scénario Approche Notes
L’application utilise des jeux de données pour stocker les données. Utilisez la méthode TableAdapter.Update pour envoyer toutes les modifications à la base de données. Les modifications incluent les mises à jour, les insertions et les suppressions.
L’application utilise des objets pour stocker les données. Utilisez la méthode TableAdapter.Insert pour insérer de nouveaux enregistrements dans la base de données. Cette approche vous confère un meilleur contrôle sur la création de nouveaux enregistrements.
L’application utilise TableAdapters, la méthode Insert n'est pas disponible. Définissez la propriété TableAdapter GenerateDBDirectMethods sur true à partir du Concepteur de DataSet et enregistrez le jeu de données pour régénérer le TableAdapter. Si votre TableAdapter n’a pas de méthode Insert, celui-ci est configuré pour utiliser des procédures stockées, ou la propriété GenerateDBDirectMethods est définie sur false.
Si la méthode Insert n’est toujours pas disponible après la régénération de TableAdapter, il est probable que la table ne fournisse pas suffisamment d’informations de schéma pour distinguer les lignes individuelles (par exemple, il se peut qu’aucune clé primaire ne soit définie sur la table).
L’application n’utilise pas TableAdapters. Utilisez les objets de commande pour insérer de nouveaux enregistrements dans la base de données. Exemple : SqlCommand

Insérer de nouveaux enregistrements à l’aide de TableAdapters

Si votre application utilise des jeux de données pour stocker des données, vous pouvez ajouter de nouveaux enregistrements au DataTable souhaité dans le jeu de données, puis appeler la méthode TableAdapter.Update. La méthode TableAdapter.Update envoie les modifications apportées au DataTable à la base de données (y compris les enregistrements modifiés et supprimés).

Insérer de nouveaux enregistrements avec la méthode TableAdapter.Update

La procédure suivante montre comment insérer de nouveaux enregistrements dans une base de données à l’aide de la méthode TableAdapter.Update :

  1. Ajoutez de nouveaux enregistrements au DataTable souhaité en créant un nouveau DataRow et en l’ajoutant à la collection Rows.

  2. Après avoir ajouté les nouvelles lignes à la DataTable, appelez la méthode TableAdapter.Update. Vous pouvez contrôler la quantité de données à mettre à jour en passant l’une des valeurs de paramètre suivantes :

    Le code suivant montre comment ajouter un nouvel enregistrement à DataTable, puis appeler la méthode TableAdapter.Update pour enregistrer la nouvelle ligne dans la base de données. Cet exemple utilise la table Region dans la base de données Northwind.

    // Create a new row.
    NorthwindDataSet.RegionRow newRegionRow;
    newRegionRow = northwindDataSet.Region.NewRegionRow();
    newRegionRow.RegionID = 5;
    newRegionRow.RegionDescription = "NorthWestern";
    
    // Add the row to the Region table
    this.northwindDataSet.Region.Rows.Add(newRegionRow);
    
    // Save the new row to the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Insérer de nouveaux enregistrements avec la méthode TableAdapter.Insert

Si votre application utilise des objets pour stocker des données, vous pouvez utiliser la méthode TableAdapter.Insert pour créer des lignes directement dans la base de données. La méthode Insert accepte les valeurs individuelles pour chaque colonne en tant que paramètres. Lorsque vous appelez la méthode, un nouvel enregistrement est inséré dans la base de données avec les valeurs de paramètre transmises.

  • Appelez la méthode Insert de TableAdapter et transmettez les valeurs de chaque colonne en tant que paramètres.

La procédure suivante montre comment utiliser la méthode TableAdapter.Insert pour insérer des lignes. Cet exemple insère des données dans la table Region dans la base de données Northwind.

Remarque

Si vous n’avez pas d’instance disponible, instanciez le TableAdapter que vous souhaitez utiliser.

NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
    new NorthwindDataSetTableAdapters.RegionTableAdapter();

regionTableAdapter.Insert(5, "NorthWestern");

Insérer de nouveaux enregistrements avec des objets de commande

Vous pouvez insérer de nouveaux enregistrements directement dans une base de données à l’aide d’objets de commande.

  • Créez un objet de commande, puis définissez ses propriétés Connection, CommandTypeet CommandText .

La procédure suivante montre comment insérer des enregistrements dans une base de données à l’aide d'un objet de commande. Cet exemple permet d’insérer des données dans la table Region de la base de données Northwind.

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 = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();