Hallo alle miteinander,
vor kurzem bin ich über VBA (Excel) zur Visual Basic Studio 2010 Express Edition gekommen und versuche mich nun daran ein Dienstplanprogramm zu erstellen. Seit einiger Zeit hänge ich jedoch an folgendem Codefragment:
Fehlerbeschreibung:
Der Code läuft Problemlos bis Zeile 22. Beim ausführen dieser Zeile springt das Programm logischerweise in Zeile 26. der Klasse DBAbfrage. Beim ausführen der Zeile 29 "reader = command.ExecuteReader()" beendet sich das Programm sang und klanglos selbst. Weder der try/catch-Block noch VisualBasic selbst geben einen Fehler zurück. Alle geöffneten UserForms "unloaden" und ich werde zurück auf die Studio Express Oberfläche geworfen. Die Ausführung des Codes wird an dieser Stelle abgebrochen. Selbiges gilt bei den Methoden ExecuteNonQuery und ExecuteScalar.
Als Datenquelle habe ich eine lokale Datenbank hinzugefügt.
Was ist hier los? Langsam bin ich wirklich am verzweifeln dabei spüre ich, dass die Lösung vielleicht wie immer nur ein falsches Komma entfernt liegt.
Hier noch eine Frage am Rande: Ist eine lokale Datenbank für eine solche Anwendung die richtige Wahl? (Vorausgesetzt es kommt nur an einem Rechner zur Anwendung)
Danke für die Unterstützung und viele Grüße
vor kurzem bin ich über VBA (Excel) zur Visual Basic Studio 2010 Express Edition gekommen und versuche mich nun daran ein Dienstplanprogramm zu erstellen. Seit einiger Zeit hänge ich jedoch an folgendem Codefragment:
VB.NET-Quellcode
- Imports System.Data.OleDb
- Public Class NeueSchicht
- Public intMitarbeiterID
- Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
- Dim strVorname As String
- Dim strNachname As String
- Dim strComboboxText As String
- Dim intMitarbeiterID As Integer
- strComboboxText = ComboBox1.Text
- strVorname = Microsoft.VisualBasic.Left(ComboBox1.Text, InStr(ComboBox1.Text, " ") - 1)
- strNachname = Microsoft.VisualBasic.Right(strComboboxText, Len(strComboboxText) - InStr(strComboboxText, " "))
- Dim MitarbeiterID As New DbAbfrage("SELECT MitarbeiterID FROM tblMitarbeiter WHERE Vorname = ? AND Nachname = ?")
- MitarbeiterID.command.Parameters.Add(New OleDbParameter("paramVorname", strVorname))
- MitarbeiterID.command.Parameters.Add(New OleDbParameter("paramNachname", strNachname))
- MitarbeiterID.ExecuteReader()
- Do While MitarbeiterID.reader.Read
- intMitarbeiterID = MitarbeiterID.reader("MitarbeiterID")
- Loop
- MitarbeiterID.DbSchließen()
- MitarbeiterID = Nothing
- End Sub
- End Class
VB.NET-Quellcode
- Imports System.Data.OleDb
- Public Class DbAbfrage
- Public connection As New OleDbConnection
- Public command As New OleDbCommand
- Public reader As OleDbDataReader
- Public NonQueryErgebnis As Integer
- Sub New(ByVal CommandText As String)
- connection.ConnectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=C:\Users\Home\Desktop\Thomas\Dienstplan\Dienstplan\DienstplanDatenbank.sdf"
- command.Connection = connection
- command.CommandText = CommandText
- End Sub
- Sub ExecuteNonQuery()
- Try
- connection.Open()
- NonQueryErgebnis = command.ExecuteNonQuery
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- End Sub
- Sub ExecuteReader()
- Try
- connection.Open()
- reader = command.ExecuteReader()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- End Sub
- End Class
Fehlerbeschreibung:
Der Code läuft Problemlos bis Zeile 22. Beim ausführen dieser Zeile springt das Programm logischerweise in Zeile 26. der Klasse DBAbfrage. Beim ausführen der Zeile 29 "reader = command.ExecuteReader()" beendet sich das Programm sang und klanglos selbst. Weder der try/catch-Block noch VisualBasic selbst geben einen Fehler zurück. Alle geöffneten UserForms "unloaden" und ich werde zurück auf die Studio Express Oberfläche geworfen. Die Ausführung des Codes wird an dieser Stelle abgebrochen. Selbiges gilt bei den Methoden ExecuteNonQuery und ExecuteScalar.
Als Datenquelle habe ich eine lokale Datenbank hinzugefügt.
Was ist hier los? Langsam bin ich wirklich am verzweifeln dabei spüre ich, dass die Lösung vielleicht wie immer nur ein falsches Komma entfernt liegt.
Hier noch eine Frage am Rande: Ist eine lokale Datenbank für eine solche Anwendung die richtige Wahl? (Vorausgesetzt es kommt nur an einem Rechner zur Anwendung)
Danke für die Unterstützung und viele Grüße