Maison >développement back-end >C++ >Comment C# peut-il insérer efficacement des données paramétrées en masse dans une base de données ?

Comment C# peut-il insérer efficacement des données paramétrées en masse dans une base de données ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-03 21:18:091061parcourir

How Can C# Efficiently Bulk Insert Parameterized Data into a Database?

Insérer en masse des variables paramétrées dans une base de données à l'aide de C#

L'insertion efficace de nombreuses variables paramétrées dans une base de données est un défi courant auquel sont confrontés les développeurs. C# propose une solution utilisant des paramètres table et des procédures stockées pour insérer plusieurs lignes dans une seule requête.

Création du type de table défini par l'utilisateur

Commencez par créer un type de table défini par l'utilisateur qui reflète la structure de la table de la base de données cible :

CREATE TYPE MyTableType AS TABLE
(
    Col1 int,
    Col2 varchar(20) 
)
GO

Définition du fichier stocké Procédure

Ensuite, créez une procédure stockée qui accepte le type de table nouvellement créé comme paramètre d'entrée :

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

Cette procédure stockée insérera les données du type de table @MyTable dans la table MyTable de la base de données.

Exécution de la procédure stockée à partir de C#

Enfin, exécutez la procédure stockée à partir de C# en utilisant le code suivant :

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();
    }
}

Avantages de l'utilisation de paramètres table

L'utilisation de paramètres table offre plusieurs avantages :

  • Efficace : Une seule requête remplace plusieurs instructions d'insertion, améliorant considérablement les performances.
  • Paramétré : Les données sont transmises dans un de manière paramétrée, réduisant ainsi le risque d'attaques par injection SQL.
  • Extensible :Le Le type de table défini par l'utilisateur peut être modifié pour correspondre à différents scénarios sans altérer la procédure stockée.

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!

Déclaration:
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