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

Mise à jour : novembre 2007

Pour insérer de nouveaux enregistrements dans une base de données, vous pouvez utiliser la méthode TableAdapter.Update, ou l'une des méthodes DBDirect (spécifiquement la méthode TableAdapter.Insert) du TableAdapter. Pour plus d'informations, consultez Vue d'ensemble de TableAdapter.

Si votre application n'utilise pas de TableAdapters, vous pouvez faire appel à des objets de commande pour interagir et insérer de nouveaux enregistrements dans votre base de données (par exemple, SqlCommand).

Utilisez la méthode TableAdapter.Update lorsque votre application utilise des groupes de données pour stocker des données. La méthode Update envoie toutes les modifications (mises à jour, insertions et suppressions) à la base de données.

Utilisez la méthode TableAdapter.Insert lorsque votre application utilise des objets pour stocker des données ou lorsque vous voulez mieux maîtriser la création d'enregistrements dans la base de données.

Si votre TableAdapter n'a pas de méthode Insert, 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 Insert, 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).

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

Les TableAdapters proposent différents moyens d'insérer de nouveaux enregistrements dans une base de données, selon les besoins de votre application.

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

Pour insérer de nouveaux enregistrements dans une base de données à l'aide de la méthode TableAdapter.Update

  1. Ajoutez de nouveaux enregistrements à la DataTable voulue en créant un objet DataRow et en l'ajoutant à la collection Rows. Pour plus d'informations, consultez Comment : ajouter des lignes à un DataTable.

  2. Après avoir ajouté à la DataTable les nouvelles lignes, 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 ajouter un nouvel enregistrement à une DataTable et appeler la méthode TableAdapter.Update pour enregistrer la nouvelle ligne dans la base de données. (Cet exemple utilise la table Region de la base de données Northwind.)

    ' Create a new row.
    Dim newRegionRow As NorthwindDataSet.RegionRow
    newRegionRow = Me.NorthwindDataSet._Region.NewRegionRow()
    newRegionRow.RegionID = 5
    newRegionRow.RegionDescription = "NorthWestern"
    
    ' Add the row to the Region table
    Me.NorthwindDataSet._Region.Rows.Add(newRegionRow)
    
    ' Save the new row to the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    
    // 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);
    

Si votre application utilise des objets pour stocker les données dans votre application, 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. L'appel à la méthode insère un nouvel enregistrement dans la base de données avec les valeurs de paramètre passées.

La procédure suivante utilise la table Region de la base de données Northwind en tant qu'exemple.

Pour insérer de nouveaux enregistrements dans une base de données à l'aide de la méthode TableAdapter.Insert

  • Appelez la méthode Insert du TableAdapter, en passant les valeurs pour chaque colonne en tant que paramètres.

    Remarque :

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

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

Insérer de nouveaux enregistrements à l'aide d'objets de commande

L'exemple suivant insère de nouveaux enregistrements directement dans 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.

La procédure suivante utilise la table Region de la base de données Northwind en tant qu'exemple.

Pour insérer de nouveaux enregistrements dans 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.

    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 = "INSERT Region (RegionID, RegionDescription) VALUES (5, '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 = "INSERT Region (RegionID, RegionDescription) VALUES (5, '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 d'insérer des enregistrements dans la table voulue.

Voir aussi

Tâches

Comment : supprimer les 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

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