Hi,
ich habe ein Programm, welches über sqlcmd ein SQL-skript an eine DB schickt und ausführt.
sqlcmd schreibt ein log, welches ich direkt nach Ausführung des Skripts in einer Textbox anzeigen lassen will.
Das Problem hierbei:
Die Logdatei wird geschrieben, aber beim öffnen ist die Log leer.
Starte ich das Programm nun neu und rufe führe dann das Skript nochmal aus, dann erscheint auch das log korrekt in der Textbox...
Das scheint ein Initialisierungsfehler zu sein...aber ich komm nicht drauf, wie ich das umgehen kann.
Hab blockade, bitte um Hilfe.
//SQLCMD Parameter und Ausführung
//script ist der Pfad (inkl. File + Endung) für die Log
//Fn ist der Pfad (inkl. File + Endung) für das SQLSkript
//Die Variablen werden durch Eingaben in Textfelder gefüllt
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| SqlConnectionStringBuilder constrgBuilder = new SqlConnectionStringBuilder(); constrgBuilder.DataSource = server; constrgBuilder.InitialCatalog = db; constrgBuilder.UserID = uid; constrgBuilder.Password = pw;
script = Fn.Substring(0, Fn.Length - 3) + "log"; Process RunSQLScript = new Process(); RunSQLScript.StartInfo.FileName = "sqlcmd.exe"; string connectionparms = "-S " + server + " -d " + db + " -U " + uid + " -P " + pw; string path_logfile = " -o " + script; string path_sqlfile = " -i " + Fn; RunSQLScript.StartInfo.Arguments = connectionparms + path_logfile + path_sqlfile; RunSQLScript.Start(); |
//Ausgabe der Scriptausführung in Textbox
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| try { ultraTextEditor_returnsqlcommand.Text = File.ReadAllText(script, Encoding.Default); } catch (exception ex) { MessageBox.Show(ex.message); } |