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
Libérer: 2025-01-18 14:51:09
original
465 Les gens l'ont consulté

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>
Copier après la connexion

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!

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