Maison > base de données > tutoriel mysql > Comment insérer efficacement plusieurs lignes paramétrées dans une base de données à l'aide de C# ?

Comment insérer efficacement plusieurs lignes paramétrées dans une base de données à l'aide de C# ?

Susan Sarandon
Libérer: 2025-01-12 08:19:42
original
936 Les gens l'ont consulté

How to Efficiently Insert Multiple Parameterized Rows into a Database using C#?

Optimisation des insertions de bases de données en C# : une approche de requête paramétrée unique

Insérer individuellement de nombreuses lignes dans une base de données est inefficace. Cet article présente une méthode hautes performances utilisant une seule requête paramétrée en C# pour réaliser une insertion groupée.

La clé est d'exploiter les procédures stockées et les paramètres table. Cette démarche comporte trois étapes principales :

  1. Définir un type de table :

    Créez un type de table SQL Server personnalisé pour définir la structure de vos données, en spécifiant les noms de colonnes et les types de données.

  2. Création d'une procédure stockée :

    Développez une procédure stockée qui accepte votre type de table personnalisé en tant que paramètre en lecture seule à valeur table. Cette procédure insérera ensuite les données dans la table de votre base de données cible. N'oubliez pas que les paramètres table doivent être READONLY.

  3. Implémentation du code C# :

    Dans votre application C# :

    • Créez un objet DataTable, reflétant la structure de votre type de table personnalisé.
    • Remplissez ceci DataTable avec les données que vous avez l'intention d'insérer.
    • Exécutez la procédure stockée en passant le DataTable comme paramètre table.

Voici un exemple illustrant ce processus :

Type de table (SQL) :

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

Procédure stockée (SQL) :

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

Code C# :

<code class="language-csharp">using System.Data;
using System.Data.SqlClient;

// ... other code ...

DataTable dt = new DataTable();
dt.Columns.Add("Col1", typeof(int));
dt.Columns.Add("Col2", typeof(string));

// Populate dt with your data here...  e.g.,
//DataRow row = dt.NewRow();
//row["Col1"] = 1;
//row["Col2"] = "Value1";
//dt.Rows.Add(row);


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

Cette méthode améliore considérablement l'efficacité de l'insertion de la base de données en réduisant le nombre d'allers-retours dans la base de données, ce qui conduit à un traitement des données plus rapide et plus évolutif.

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