none
Konsolenanwendung bleibt ohne Fehlermeldung stehen RRS feed

  • Frage

  • Hallo, NG,

    ich habe eine Konsolenanwendung, die nacheinander 5 SQL-Statements ausführen soll. Diese Statements werden von der Sub Main nacheinander aufgerufen.

    Die Anwendung soll 5 T-SQL-Statements (Q1 - Q5) nacheinander ausführen. Diese sehen alle aus wie die nachstehende:

             Sub Q1()
                'Daten aus der alten Datenbank werden aus der View vAddresses in der neuen Datenbank gezogen.
                Dim con As SqlConnection = New SqlConnection(My.Settings.akt_Con)
                Dim SQL_Befehl As String = My.Settings.Q1
                Try
                    Dim cmd As DbCommand = New SqlCommand(SQL_Befehl, con)
                    cmd.Connection = con
                    con.Open()
                    cmd.ExecuteNonQuery()
                    Console.ReadLine()
                Catch ex As Exception
                    Console.WriteLine("Fehler: {0}", ex.Message)
                Finally
                    con.Close()
                    Console.WriteLine("fertig")
                End Try
                Console.ReadLine()

            End Sub

    Der Connectionstring stimmt jetzt (ist jedesmal der gleiche, die SQL-Statements stehen auch als String in den Einstellungen und wurden vorab natürlich im Managementstudio getestet.

    Was mich besonders irritiert: das erste Statement wird ausgeführt, dabei werden Adressen in die erste Tabelle eingefügt, dann bleibt die Konsole aber einfach stehen, keine Fehlermeldung, nichts sonst. Vielleicht könnt Ihr mir da einen Tipp geben, wo da das Problem sein könnte?

    Gruß aus München

    Susanne

    Donnerstag, 5. August 2010 03:49

Antworten

  • Hallo Susanne,

    Der Connectionstring stimmt jetzt (ist jedesmal der gleiche, die SQL-Statements stehen auch als String in den Einstellungen und wurden vorab natürlich im Managementstudio getestet.

    Was mich besonders irritiert: das erste Statement wird ausgeführt, dabei werden Adressen in die erste Tabelle eingefügt, dann bleibt die Konsole aber einfach stehen, keine Fehlermeldung, nichts sonst. Vielleicht könnt Ihr mir da einen Tipp geben, wo da das Problem sein könnte?

    nur um sicher zu gehen, aber Dir ist schon bewusst und gewollt, dass die Anweisung Console.ReadLine() auf eine Eingabe von Dir wartet, genauer eine Zeilenumschaltung (Return)?

    Vielleicht klärender:

         Sub Q1()
          'Daten aus der alten Datenbank werden aus der View vAddresses in der neuen Datenbank gezogen.
          Dim con As SqlConnection = New SqlConnection(My.Settings.akt_Con)
          Dim SQL_Befehl As String = My.Settings.Q1
          Try
            Dim cmd As DbCommand = New SqlCommand(SQL_Befehl, con)
            cmd.Connection = con
            con.Open()
            cmd.ExecuteNonQuery()
            
            Console.WriteLine("Erfolgreich ausgeführt.")
    
          Catch ex As Exception
            Console.WriteLine("Fehler: {0}", ex.Message)
    
          Finally
            con.Close()
           
          End Try
    
          Console.WriteLine("Eingabe um fortzufahren...")
          Console.ReadLine()
    
        End Sub



    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Donnerstag, 5. August 2010 05:23
    Moderator

Alle Antworten

  • Hallo Susanne,

    Der Connectionstring stimmt jetzt (ist jedesmal der gleiche, die SQL-Statements stehen auch als String in den Einstellungen und wurden vorab natürlich im Managementstudio getestet.

    Was mich besonders irritiert: das erste Statement wird ausgeführt, dabei werden Adressen in die erste Tabelle eingefügt, dann bleibt die Konsole aber einfach stehen, keine Fehlermeldung, nichts sonst. Vielleicht könnt Ihr mir da einen Tipp geben, wo da das Problem sein könnte?

    nur um sicher zu gehen, aber Dir ist schon bewusst und gewollt, dass die Anweisung Console.ReadLine() auf eine Eingabe von Dir wartet, genauer eine Zeilenumschaltung (Return)?

    Vielleicht klärender:

         Sub Q1()
          'Daten aus der alten Datenbank werden aus der View vAddresses in der neuen Datenbank gezogen.
          Dim con As SqlConnection = New SqlConnection(My.Settings.akt_Con)
          Dim SQL_Befehl As String = My.Settings.Q1
          Try
            Dim cmd As DbCommand = New SqlCommand(SQL_Befehl, con)
            cmd.Connection = con
            con.Open()
            cmd.ExecuteNonQuery()
            
            Console.WriteLine("Erfolgreich ausgeführt.")
    
          Catch ex As Exception
            Console.WriteLine("Fehler: {0}", ex.Message)
    
          Finally
            con.Close()
           
          End Try
    
          Console.WriteLine("Eingabe um fortzufahren...")
          Console.ReadLine()
    
        End Sub



    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Donnerstag, 5. August 2010 05:23
    Moderator
  • Hallo, Thorsten,

    ich komm mir echt blöd vor :-( - dann muss ich mich halt an Murphy halten, der Wert an Erfahrung ... Vielen Dank für den Tipp!

    Gruß aus München

    Susanne

    Donnerstag, 5. August 2010 08:47