Heim > Backend-Entwicklung > C++ > Wie kann ich eine .SQL-Skriptdatei mit mehreren Anweisungen in C# ausführen?

Wie kann ich eine .SQL-Skriptdatei mit mehreren Anweisungen in C# ausführen?

Patricia Arquette
Freigeben: 2025-01-18 15:12:10
Original
424 Leute haben es durchsucht

How Can I Execute an .SQL Script File with Multiple Statements in C#?

SQL-Skriptdatei mit C# ausführen

In C# erfordert die Ausführung einer .SQL-Datei mit mehreren Anweisungen eine Alternative zur ExecuteNonQuery-Methode von ODP.NET. In diesem Artikel werden zwei Methoden zum Ausführen dieser Aufgabe beschrieben.

Methode 1: Verwenden Sie SQL Server Management Objects (SMO)

  1. Verwenden Sie SqlConnection, um eine Datenbankverbindung herzustellen.
  2. Initialisieren Sie das Serverobjekt mithilfe der Verbindung.
  3. Verwenden Sie Server.ConnectionContext.ExecuteNonQuery(script), um das Skript auszuführen.
<code class="language-csharp">using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using System.IO;
using System.Data.SqlClient;

SqlConnection conn = new SqlConnection(sqlConnectionString);
Server server = new Server(new ServerConnection(conn));
string script = File.ReadAllText(@"path/to/script.sql");
server.ConnectionContext.ExecuteNonQuery(script);</code>
Nach dem Login kopieren

*Methode 2: Generieren Sie einen Prozess zum Aufrufen von SQLPlus**

  1. Erstellen Sie ein Process-Objekt und setzen Sie UseShellExecute auf false.
  2. Leiten Sie die Standardausgabe um, um die Ergebnisse zu erfassen.
  3. Setzen Sie die FileName-Eigenschaft auf „sqlplus“.
  4. Legen Sie die Arguments-Eigenschaft so fest, dass sie Datenbankanmeldeinformationen und den Skriptpfad enthält.
  5. Setzen Sie CreateNoWindow auf true, um das Konsolenfenster auszublenden.
  6. Wenn der Prozess den Exit-Code 1 zurückgibt, wiederholen Sie den Vorgang.
<code class="language-csharp">Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "sqlplus";
p.StartInfo.Arguments = string.Format("xx/xx@{0} @{1}", in_database, s);
p.StartInfo.CreateNoWindow = true;

bool started = p.Start();
while (p.HasExited == false)
{
    Application.DoEvents();
}

int exitCode = p.ExitCode;
if (exitCode != 0)
{
    ... // 错误处理
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich eine .SQL-Skriptdatei mit mehreren Anweisungen in C# ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage