Maison > base de données > tutoriel mysql > Comment puis-je insérer efficacement plusieurs lignes dans une base de données SQL Server 2008 à l'aide de paramètres table paramétrés et de C# ?

Comment puis-je insérer efficacement plusieurs lignes dans une base de données SQL Server 2008 à l'aide de paramètres table paramétrés et de C# ?

Patricia Arquette
Libérer: 2025-01-12 08:42:45
original
210 Les gens l'ont consulté

How Can I Efficiently Insert Multiple Rows into a SQL Server 2008 Database using Parameterized Table-Valued Parameters and C#?

Optimisation de l'insertion de données en masse dans SQL Server 2008 avec des paramètres C# et table

L'insertion de plusieurs lignes individuellement dans une base de données SQL Server 2008 peut avoir un impact significatif sur les performances. Cet article démontre une approche plus efficace utilisant des paramètres table paramétrés et C#.

Définir un type de table défini par l'utilisateur

Commencez par créer un type de table défini par l'utilisateur dans SQL Server qui reflète la structure de votre table cible :

<code class="language-sql">CREATE TYPE MyTableType AS TABLE
(
    Col1 int,
    Col2 varchar(20) 
)
GO</code>
Copier après la connexion

Création de la procédure stockée

Ensuite, créez une procédure stockée qui accepte ce type de table en entrée et effectue l'insertion groupée :

<code class="language-sql">CREATE PROCEDURE MyProcedure
(
    @MyTable dbo.MyTableType READONLY -- Readonly is crucial for table-valued parameters
)
AS
BEGIN
    INSERT INTO MyTable (Col1, Col2)
    SELECT Col1, Col2 
    FROM @MyTable;
END;
GO</code>
Copier après la connexion

Implémentation C# pour l'insertion de données

Enfin, utilisez C# pour remplir un DataTable et transmettez-le en tant que paramètre table à la procédure stockée :

<code class="language-csharp">DataTable dt = new DataTable();
dt.Columns.Add("Col1", typeof(int));
dt.Columns.Add("Col2", typeof(string));

// Populate the DataTable with your data

using (SqlConnection con = new SqlConnection("ConnectionString"))
{
    using (SqlCommand cmd = new SqlCommand("MyProcedure", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@MyTable", dt); // AddWith Value handles SqlDbType automatically
        con.Open();
        cmd.ExecuteNonQuery();
    }
}</code>
Copier après la connexion

Cette méthode exploite la puissance des paramètres table pour améliorer considérablement l'efficacité de l'insertion de plusieurs lignes dans votre base de données SQL Server 2008 à partir de votre application C#. Cette approche offre des performances supérieures par rapport aux insertions de lignes individuelles.

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