[VB 2010] Mysql abfragen Problem

10/16/2011 01:20 pzyhô#1
Heyho zusammen, da ich so langsam kein nerv mehr hab stundenlang mit Google zu verbringen um eine Lösung für mein Problem zu finden frag ich jez einfach mal hier nach.

So zu meinem Problem

Ich baue eine MySql Verbindung mit dem Mysql Connector auf was auch Wunderbar klappt.
Hab eine Sql abfrage drin die auch ohne Probleme Funktioniert. Doch brauch ich nicht nur 1 Abfrage sondern mehrere aus Verschiedenen Tabellen

Hier ist mal ein Ausschnitt von meinem Code:

Code:
	Dim conn As MySqlConnection
        conn = New MySqlConnection
        conn.ConnectionString = "Server=localhost;Database=dbname;Uid=root;Pwd=passwort"

        Dim SQLAbfrage As String = "SELECT * FROM members"
        Dim myCommand As New MySqlCommand
        myCommand.Connection = conn
        myCommand.CommandText = SQLAbfrage
        Dim myData As MySqlDataReader
        Try
            conn.Open()
            myData = myCommand.ExecuteReader()
            If myData.HasRows Then
                myData.Read()

                lbl_member.Text = myData("member_name")
                lbl_memberid.Text = myData("id_member")
                myData.Close()


            Else

            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        conn.Close()
das funktioniert ohne probleme.


nun ist meine frage ob man das nicht i.wie anders lösen kann zb so

Pseudocode:
Code:
lbl_member.Text = myData("Select * from members","member_name")
lbl_memberid.Text = myData("select * from members","id_member")
lbl_subject.Text = myData("select * from topics","subject")
oder sowas ähnliches damit ich pro label eine eigene Abfrage machen kann die dann auch den Wert liefert

Würde mich freuen wenn mir hier jemand weiterhelfen könnte

PS: Bin noch relativ neu in VB von daher weis ich noch nicht alles :)

lg pzyhô
10/16/2011 01:52 Kraizy​#2
Mach doch eine Funktion daraus, die du dann mit den Parametern, wo ausgelesen werden soll, aufrufst. Oder habe ich dich falsch verstanden?
10/16/2011 02:53 Noisuf-X#3
Selten so einen Schwachsinn gehört.
Deine SQL Query ist schon falsch für den Fall.

Code:
SELECT *
FROM members
Kann dir mehrere Entitäten zurück liefern, also erstmal musst du eine richtige Query für den Fall schreiben da du ja nur jeweils ein String zurück haben willst.

Außerdem ist es eh besser die Datenbankabfragen in eine Datenschicht auszulagern und dir eine richtig Objektstruktur zuzulegen. Das Entityframework eigentsich dafür am besten. Da spart man sich auch gleich die ganze SQL-Query-Schreiberei.
Ohne richtige Datenabstraktion zuarbeiten ist einfach nur sinnlos und jeder der nur ein bisschen Ahnung hat wird dich dafür hauen
10/16/2011 18:01 pzyhô#4
werds mir mal anschauen

lg pzyhô