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.