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
Libérer: 2025-01-03 21:18:09
original
991 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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();
    }
}
Copier après la connexion

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!

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