2017-06-28 4 views
0

Ich würde gerne wissen, wenn es möglich ist, ein SQL-Skript in clickonce enthalten, muss ich eine Anwendung aktualisieren, die lokal mit SQL Server verbindet, und innerhalb der gleichen Aktualisierung ist es notwendig, einige zu aktualisieren Stored Procedures, ist es möglich, diese Skripte mit einem Klick einmal auszuführen, oder ich habe Connect mit der Datenbank und führen sie manuell aus, die Anwendung clickonce wird in einem Server in der Cloud zum Download gespeichertAusführen von SQL-Skript auf clickonce-Anwendung

Antwort

0

Speichern Sie die gespeicherten Procs oder welche Skripte Sie benötigen, als "Embedded Resource" -Dateien im Projekt. Dann können Sie sie einfach laden, wenn das Programm ausgeführt wird, und sie mit den Standard-ADO.NET-Befehlen für den SQL Server ausführen.

Lesen eingebettete Ressource Textdatei: How To Read Embedded Resource File

Sie müssen nur Ihr Skript zum Abrufen (en) und unter Verwendung von Code ähnlich der folgenden ausführen:

// Read stored procedure script from embedded resource or simply assign in code, for example. 
string scriptText = "CREATE PROCEDURE Test AS BEGIN SELECT 'Test'; END"; 

using (SqlConnection conn = new SqlConnection(connectionString)) 
{ 
    conn.Open(); 

    using (SqlCommand cmd = conn.CreateCommand()) 
    { 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = scriptText; 

     cmd.ExecuteNonQuery(); 
    } 
} 

Für Ihr Skript, möchten Sie vielleicht Schreiben Sie es, damit es Situationen behandeln kann, in denen die gespeicherte Prozedur bereits existiert (Beispiel: Wenn sie existiert, löschen Sie sie zuerst und dann CREATE PROCEDURE). Wenn Sie über Berechtigungen verfügen, die behandelt werden müssen (z. B. GRANT), können sie ebenfalls zum Skript hinzugefügt werden.

In der Regel möchten Sie jede gespeicherte Prozedur in eine separate eingebettete Ressourcentextdatei trennen und alle Dateien durchlaufen und jeweils mit SQL-Code wie oben ausführen. Vielleicht möchten Sie diese "Skripte" in eine separate Assembly (aka Project) einfügen, so dass es einfach ist, sie unter Verwendung des vorherigen Links zu lesen.

+0

Haben Sie einen Dokumentationslink zum Ausführen dieser Dateien in der App? –

+0

@JorgeTorselli - Ich füge einige Details oben hinzu. Hoffentlich hilft dir das beim Einstieg. –

+0

Link zu einem anderen Problem beim Lesen von eingebetteten Ressourcen, wenn Sie Hilfe benötigen: https://StackOverflow.com/Questions/3314140/How-to-Read-embedded-resource-text-file –

Verwandte Themen