Avatar billede bravoosca Nybegynder
19. november 2009 - 13:49 Der er 3 kommentarer og
1 løsning

There is no row at position 0

Jeg er ved at lave en ASP.Net hjemmeside, hvor jeg bruger en MySQL database.

Jeg får følgenden fejl:

There is no row at position 0.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IndexOutOfRangeException: There is no row at position 0.

Source Error:


Line 135:                connection.Open()
Line 136:                Dim list As New Generic.List(Of Link)()
Line 137:                Using reader As MySqlDataReader = command.ExecuteReader()
Line 138:                        Do While (reader.Read())
Line 139:                        Dim temp As New Link(CInt(reader("LinkID")), CInt(reader("LinkCategoryID")), CStr(reader("LinkCategoryTitle")), CStr(reader("LinkTitle")), CStr(reader("LinkURL")), CStr(reader("LinkDescription")), CInt(reader("LinkOrder")), CInt(reader("IsDeleted")))

----------
Min kode ser sådan ud:

Public Shared Function GetLinks(ByVal LinkCategoryID As Integer) As Generic.List(Of Link)
        Using connection As New MySqlConnection(ConfigurationManager.ConnectionStrings("Personal").ConnectionString)
            Using command As New MySqlCommand("GetLinks", connection)
                command.CommandType = CommandType.StoredProcedure
                command.Parameters.Add(New MySqlParameter("@LinkCategoryID", LinkCategoryID))
                connection.Open()
                Dim list As New Generic.List(Of Link)()
                Using reader As MySqlDataReader = command.ExecuteReader()
                        Do While (reader.Read())
                        Dim temp As New Link(CInt(reader("LinkID")), CInt(reader("LinkCategoryID")), CStr(reader("LinkCategoryTitle")), CStr(reader("LinkTitle")), CStr(reader("LinkURL")), CStr(reader("LinkDescription")), CInt(reader("LinkOrder")), CInt(reader("IsDeleted")))
                        list.Add(temp)
                    Loop
                End Using
                Return list
            End Using
        End Using
    End Function

----------

Det er linie 137 der fejler.
Er der nogen der ved hvad der skal gøres og hvordan jeg kommer lidt vidre.

Koden er ændret fra MS SQL til MySql, og der er ingen fejl når jeg køre i MS SQL. Jeg vil dog ikke bruge MS SQL, da det koster ekstre at bruge på webhotellet. Men det må jo også kunne lade sig gøre at få til at virke under MySQL.

Siden er en ASP.Net 2.0, med MySQL DB og alt kode er i VB.
Avatar billede SigneHP Nybegynder
19. november 2009 - 13:54 #1
Fejlen betyder jo bare at der ikke er noget data i det du prøver at trække ud fra databasen. Har du dobbelttjekket at der nu også ligger noget data? Det kan jo være der er gået noget tabt hvis du har importeret det i mysql fra den gamle database.

Jeg plejer altid at teste mine sql sætninger direkte i databasen først, så jeg ved det virker. Det er noget nemmere at fejlfinde den vej rundt :)
Avatar billede bravoosca Nybegynder
19. november 2009 - 14:52 #2
Der er pt. 16 poster i den tabel, som den gerne skulle hente fra.

Det jeg er lidt i tvivl om er denne her:
Using command As New MySqlCommand("GetLinks", connection)

Der står at den skal bruge "GetLinks", men selve functionen hedder jo GetLinks. Er det så denne function den hentyder til?
Som sagt før, er det en funtion jeg har fundet til SQL og skrevet om til MySQL, men i SQL virker den, når jeg afprøver den.
Avatar billede SigneHP Nybegynder
19. november 2009 - 15:04 #3
Uden selv at have afprøvet det vil jeg umiddelbart sige at du er nødt til at skrive sql der i stedet for.

Altså f.eks: MySqlCommand("SELECT * FROM links", connection)

Har du prøvet det?
Avatar billede bravoosca Nybegynder
27. november 2009 - 14:13 #4
Har opgivet at bruge MySQL indtil vidre, det er dog noget skal kigge lidt mere på. Da der sikkert kommer nogle små projekter hvor jeg skal bruge dette.
Så indtil vidre får du tak for hjælpen.

Lige nu køre jeg MS SQL, da den kan jeg få til at virke, og har så måtte betale for serverpladsen af den DB, men det går nok denne gang.
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

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