Beim Laden eines Form soll eine Verbindung und eine Datenverbindung auf dieser Basis eine Abfrage erfolgen. Um den Vorgang übersichtlicher zu gestalten wurde ein Modul mit diversen Anweisungen erstellt:
gegeben form2, ListBox1, Modul "DB_Verbindungen", Anweisungen im Modul: "Abfrage1", "Verbindung1"
Code des Modul "DB_ Verbindungen"
Imports MySql.Data.MySqlClient
Module DB_Verbindungen
Dim con As New MySqlConnection
Dim cmd As New MySqlCommand
Public Sub Verbindung1()
Try
'Deklaration der Datenverbindung zum Server:
con.ConnectionString = "server=xxx.kasserver.com;" & _
"password=xxx;" & "database=xxx;" & "UID=xxx;"
con.Open()
cmd.Connection = con
Catch ex As MySql.Data.MySqlClient.MySqlException
Select Case ex.Number
Case 0
MessageBox.Show("Es ist keine Verbindung zum Server" & _
"möglich!", "Verbindungsfehler", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
Case 1
MessageBox.Show("Falscher Username oder Passwort!" & _
"Überprüfen Sie Ihre Angaben!", "Verbindungsfehler", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
End Try
End Sub
Public Sub Abfrage1()
Try
cmd.CommandText = "select * FROM Status ORDER BY DS_Art ASC"
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Module Code des form2:
Imports MySql.Data.MySqlClient
Public Class Form2
Dim reader As MySqlDataReader
Dim cmd As New MySqlCommand Private Sub Form2_Load(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
'Öffnen der Datenverbindung
Call Verbindung1()
Call Abfrage1()
reader = cmd.ExecuteReader()
Do While reader.Read()
ListBox1.Items.Add(reader("DS_Art"))
Loop
reader.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub Aufgabe: Es will dem Programm nicht gelingen eine Verbindung zur Datenbank bzw Abfrage zu erstellen. Schreibe ich den Code der Module (entsprechend angepasst)in's Form2 gelingt mir die Datenverbindung und Abfrage. Wo ist der Fehler?
Bitte beachtet beim Antworten unbedingt meine Signatur!
Thomas
Nachtrag1:
Mir scheint es klemmt an dem reader im form2. Wenn ich jeden Schritt einzeln durchgehe escheint erst bei der Anweisung des readers der Fehler "connection must be valid..." Die OnlineHilfe gibt dazu auch keine für mich verwertbare Auskunft.
Nachtrag2:
Ich habe die Anweisung des Reader jetzt in die sub des Moduls übertragen und es funktioniert:
Public Sub Abfrage1()
Dim ListBox = Form2.ListBox1
Try
cmd.CommandText = "select * FROM Status ORDER BY DS_Art ASC"
reader = cmd.ExecuteReader()
Do While reader.Read()
ListBox.Items.Add(reader("DS_Art"))
Loop
reader.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub Aber warum funktioniert es bzw. warum vorher nicht?
Es ist n?tig das Eure Antworten verst?ndlich und nachvollziehbar sind. (Umgebung: Visual Studio Proff.2010, WPF, XAML, Visual Basic 10, Wind.7)
Beitrag wurde zuletzt am 17.09.10 um 15:01:42 editiert. |