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

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

Linda Hamilton
Linda Hamiltonoriginal
2025-01-12 06:45:41568parcourir

How Can I Efficiently Insert Multiple Parameterized Rows into a SQL Database Using C#?

Utilisation de paramètres table pour implémenter l'insertion de lignes paramétrées par lots C#

Dans les opérations de base de données, il est courant d'insérer plusieurs lignes de données de manière efficace tout en garantissant la sécurité des données. En C#, cela peut être réalisé à l’aide de paramètres table et de procédures stockées.

Afin d'éviter l'utilisation répétée des instructions "INSERT INTO" et d'insérer des lignes de données paramétrées par lots, veuillez suivre les étapes ci-dessous :

  1. Créer un type de table défini par l'utilisateur (UDT) : Définissez une structure de tableau pour représenter les lignes à insérer. Par exemple :

    <code class="language-sql">CREATE TYPE MyTableType AS TABLE
    (
        Col1 int,
        Col2 varchar(20)
    )
    GO</code>
  2. Créer une procédure stockée : Créez une procédure stockée qui acceptera un UDT comme paramètre.

    <code class="language-sql">CREATE PROCEDURE MyProcedure
    (
        @MyTable dbo.MyTableType READONLY -- 注意:表值参数必须是只读的!
    )
    AS
    
    INSERT INTO MyTable (Col1, Col2)
    SELECT Col1, Col2
    FROM @MyTable
    
    GO</code>
  3. Préparer les données : Créez un tableau de données et remplissez-le avec les lignes à insérer.

  4. Exécuter la procédure stockée : Utilisez l'objet SqlCommand pour exécuter la procédure stockée et transmettre la table de données en tant que paramètre.

    <code class="language-csharp">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();
        }
    }</code>

Avec cette méthode, vous pouvez insérer efficacement plusieurs lignes dans la base de données tout en garantissant la sécurité des données grâce à des requêtes paramétrées. Cela évite les instructions d'insertion individuelles en double et potentiellement inefficaces.

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