Avatar billede angelenglen Nybegynder
06. februar 2007 - 17:59 Der er 9 kommentarer og
1 løsning

Funktion til at hente data fra mySQL Database

Jeg er ret ny til Visual Basic.NET og MySQL, så jeg har lidt problemer her...

Jeg har fundet følgende funktion og vil gerne have den til at returnere et array indeholdende resultatet af min SQL query.

Men jeg har lidt svært ved at se hvordan jeg kan se hvor mange rows og columns der er i resultatet og derfra lave et array.

Foreløbig er jeg kommet frem til følgende der giver mig en liste over ID'er i min tabel når jeg kalder den... (ID er row 0 i databasen)
I dette eksempel er der 5 rows i databasen, men jeg vil gerne have funktionen til at være lidt universal så jeg ikke behøver lave en ny funktion for hver tabel jeg har brug for at læse fra.

ps. jeg har installeret mySQL .NET connectoren og oprettet reference til .dll'en (det ser ud til at virke fint).




    Public Sub ReadMyData(ByVal myConnString As String, ByVal mySqlString As String)
        Dim mySelectQuery As String = mySqlString
        Dim myConnection As New MySqlConnection(myConnString)
        Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
        myConnection.Open()
        Dim myReader As MySqlDataReader
        myReader = myCommand.ExecuteReader()
        ' Always call Read before accessing data.
        Dim strReturn As String
        strReturn = ""
        While myReader.Read()
            strReturn = strReturn & " " & myReader.GetString(0) & vbCrLf
        End While
        MsgBox(strReturn)
        ' always call Close when done reading.
        myReader.Close()
        ' Close the connection when done with it.
        myConnection.Close()
    End Sub 'ReadMyData




Jeg kalder den eksempelvis således:

ReadMyData("datasource=localhost;username=administrator;password=passw0rd;database=db1", "SELECT * FROM IpRanges")


Det giver mig en msgbox med en liste over alle ID'er i tabellen.

men jeg ville som sagt gerne kunne kalde den noget i stil med:

DataArray = ReadMyData("connection string","SQL Query")

og så bruge noget i stil med:

for i to ubound(DataArray)
msgbox("ID: " & DataArray(i, 0) & vbcrlf _
      "Navn: " & DataArray(i,1) & vbcrlf _
      "IP: " & DataArray(i,2) & vbcrlf & vbcrlf)
next

håber det giver mening.
Avatar billede arne_v Ekspert
06. februar 2007 - 18:07 #1
har du kigget paa DataSet ?

umiddebart ser det nemlig ud som om dine tanker gaar i den retning !
Avatar billede angelenglen Nybegynder
06. februar 2007 - 18:08 #2
Nej som sagt er jeg ret ny med hensyn til VB.Net og mySQL
(Har roddet med VB6 tidligere, men ikke med database)
Avatar billede arne_v Ekspert
06. februar 2007 - 18:09 #3
hvis du vil fortsaette i den retning du gaar nu saa vil jeg foreslaa at returnere
en ArrayList eller List af array af Object
Avatar billede arne_v Ekspert
06. februar 2007 - 18:11 #4
Avatar billede angelenglen Nybegynder
06. februar 2007 - 18:11 #5
Hmm hvordan får jeg fat i sådan et array? mit MyReader objekt ser ikke ud til at have sådan en?
Avatar billede angelenglen Nybegynder
06. februar 2007 - 18:14 #6
Jeg har faktisk lige fået følgende bog idag:
http://www.amazon.com/Visual-Basic-NET-Unleashed-Kimmel/dp/067232234X

"Visual Basic.NET Unleashed"

Men der står intet om mySQL i den.
Avatar billede arne_v Ekspert
06. februar 2007 - 18:36 #7
du bliver noedt til selv at allokere det array, men du kan finde hvor mange
kolonner der er i dit query output
Avatar billede arne_v Ekspert
06. februar 2007 - 18:41 #8
du kan bare bruge det der staar om SQLServer eller Access

hvis du erstatter SqlXxxx eller OleDbXxxx med MySqlXxxx saa skulle det vaere det
samme (indtil du kommer til det avancerede med stored procedures etc.)
Avatar billede arne_v Ekspert
25. marts 2007 - 16:03 #9
OK ?
Avatar billede angelenglen Nybegynder
26. marts 2007 - 17:42 #10
Jo, fandt noget om mssql der fungerede.

takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester