Maison >développement back-end >C++ >Comment puis-je exécuter efficacement des fichiers de script SQL multilignes en C# ?

Comment puis-je exécuter efficacement des fichiers de script SQL multilignes en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-18 14:51:09466parcourir

How Can I Efficiently Execute Multi-Line SQL Script Files in C#?

Exécuter le fichier de script .SQL en utilisant C#

En C#, l'exécution de fichiers de script .SQL nécessite des considérations particulières. Cette question traite de la difficulté d'exécuter de tels fichiers, qui peuvent contenir des instructions segmentées s'étendant sur plusieurs lignes.

Défis et solutions

Les tentatives d'exécution du script à l'aide de ExecuteNonQuery d'ODP.NET se sont révélées inefficaces. La génération d'un processus pour appeler sqlplus rencontrait des problèmes de blocage et de redirection de sortie.

Solution utilisant les objets de gestion Microsoft SQL Server (SMO)

La solution présentée ici exploite SMO, une API de code managé pour gérer et configurer SQL Server. Voici un extrait de code illustrant cette approche :

<code class="language-csharp">using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using System.IO;
using System.Data.SqlClient;

public partial class ExcuteScript : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string sqlConnectionString = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ccwebgrity;Data Source=SURAJIT\SQLEXPRESS";

        string script = File.ReadAllText(@"E:\Project Docs\MX462-PD\MX756_ModMappings1.sql");

        SqlConnection conn = new SqlConnection(sqlConnectionString);

        Server server = new Server(new ServerConnection(conn));

        server.ConnectionContext.ExecuteNonQuery(script);
    }
}</code>

Dans cette méthode :

  • SMO est initialisé avec une connexion à la base de données cible.
  • Le script est lu à partir du fichier et transmis à SMO pour exécution.
  • ExecuteNonQuery est utilisé pour exécuter des scripts sur des instances SQL Server.

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