Maison > développement back-end > C++ > Comment puis-je effectuer des insertions groupées paramétrées efficaces en C# et SQL Server ?

Comment puis-je effectuer des insertions groupées paramétrées efficaces en C# et SQL Server ?

Susan Sarandon
Libérer: 2024-12-30 22:17:10
original
810 Les gens l'ont consulté

How Can I Perform Efficient Parameterized Bulk Inserts in C# and SQL Server?

Effectuer des insertions groupées avec des variables paramétrées en C#

Dans les opérations de base de données, il est souvent souhaitable d'insérer plusieurs variables paramétrées dans une base de données, en particulier lorsque la base de données reçoit des données d'une application Web. Pour optimiser de telles opérations et éviter les répétitions, vous pouvez utiliser une procédure stockée et un paramètre table.

Pour y parvenir en C#, suivez ces étapes :

  1. Créer un type de table défini par l'utilisateur (UDT) :

    • Définir un UDT pour correspondre à la structure des données que vous souhaitez insérer. Par exemple :

      CREATE TYPE MyTableType AS TABLE
      (
          Col1 int,
          Col2 varchar(20)
      )
      GO
      Copier après la connexion
  2. Créer une procédure stockée avec un paramètre table :

    • Créez une procédure stockée qui accepte l'UDT comme paramètre. La procédure insérera les données dans la table de la base de données cible :

      CREATE PROCEDURE MyProcedure
      (
          @MyTable dbo.MyTableType READONLY -- Note: Table-valued parameters must be readonly
      )
      AS
      INSERT INTO MyTable (Col1, Col2)
      SELECT Col1, Col2
      FROM @MyTable
      GO
      Copier après la connexion
  3. Remplir un DataTable :

    • Initialisez un DataTable avec des définitions de colonnes correspondant à l'UDT et remplissez-le avec votre data.
  4. Exécuter la procédure stockée avec les paramètres :

    • Établir une connexion à la base de données et créer un objet de commande pour la procédure stockée.
    • Ajoutez le DataTable rempli aux paramètres de la commande en tant que type structuré paramètre.
    • Exécutez la commande pour effectuer l'insertion groupée.

      DataTable dt = new DataTable();
      dt.Columns.Add("Col1", typeof(int));
      dt.Columns.Add("Col2", typeof(string));
      
      // Fill your data table here
      
      using (var con = new SqlConnection("ConnectionString"))
      {
        using(var cmd = new SqlCommand("MyProcedure", con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt;
            con.Open();
            cmd.ExecuteNonQuery();
        }
      }
      Copier après la connexion

En suivant ces étapes, vous pouvez effectuer efficacement insertions groupées paramétrées dans une base de données SQL Server à l'aide du code C#. Cette approche évite non seulement les répétitions, mais optimise également les performances de la base de données en exécutant une seule requête pour plusieurs lignes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal