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 :
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!