03. juni 2004 - 18:08Der er
17 kommentarer og 1 løsning
Vise indhold af MySQL-database
Davdav. Hvordan får jeg Visual Basic til at vise indholdet af min MySQL-database? Jeg har fundet ud af at få forbundet til den vha. ODBC 3.51-driveren og jeg godt sætte værdier ind i den. Men hvordan får jeg den til at vise mig hvad for nogle værdier den indholder i forvejen? /TheEmail
Okay. Hvordan laver jeg et loop? Jeg behøver ikke at kunne redigere i databasen direkte der hvor den viser hvad databasen indeholder. Bare jeg kan se indholdet. /TheEmail
Jeg har jo faktisk lavet et while loop nederst i eksemplet. 'Kører indtil den er ved enden af recordsættet. while not rs.EOF 'Gør et eller andet 'Her læser jeg bare værdien af felt1 og felt2 ind i hver deres tekstboks, men 'der er også mange andre muligheder txtfelt1.text = rs("felt1") txtfelt2.text = rs("felt2") rs.movenext 'Flytter sig frem til næsten post i recordsættet. wend
Fra databasen vil jeg gerne trække tabellerne: id password home Jeg har prøvet at skrive:
While Not rs.EOF brugernavn.Text = rs(id) password.Text = rs(password) home.Text = rs(home) rs.MoveNext Wend
hvor jeg har oprette tre tekstbokse og kaldt dem henholdsvis brugernavn password og home. Den melder så at: "Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal"
Og gør denne linje gul når jeg trykker Debug: brugernavn.Text = rs(id) Jeg har også prøvet at skrive:
while not rs.EOF textBox.brugernavn = rs(id) osvosv... rs.movenext wend
Hvis jeg sætter id mellem ', så det står rs('id'), melder den compileerror.
Du har vist lige fået variabel navnene med lige for mange stedet, en tekstboks har ikke en id, password og home variable. Går du fra at det er dem du nu får fejl ved. Hvis du har kaldt dine tekstbokse brugernavn, password og home skal du skrive id.text = rs!id password.text = rs!password home.text = rs!home
Yes, nu får output. Desværre kun den første linje. Skriver: While Not rs.EOF id.Text = rs!id password.Text = rs!password home.Text = rs!home rs.MoveNext Wend Men den flytter sig vidst ikke til den næste. Har du mon også en løsning til det /TheEmail
Nu er problemet med tekstboksene at de kun kan vise dig den ene af rækkerne fra databasen, hver gang du kommer rundt en gang i loopet, skriver den jo oveni det fra den forrige database post.
Hvis du vil se alle sammen på en gang, er du nødt til og vælge en anden kontrol fx en listboks eller et listview.
Oprettede ListBoxe og namede dem id password home og prøvede at kører: While Not rs.EOF id.ListBox = rs!id password.ListBox = rs!password home.ListBox = rs!home rs.MoveNext Wend Der melder den: Compile error: Method or datamember not found
Lige en sidste ting. Kan man få den til at tømme listboxene før den henter data fra databasen. Trykker jeg flere gange skriver den værdierne flere gang
.ListItems.Clear While Not rs.EOF Set item = .ListItems.Add(, rs!ID) item.SubItems(1) = rs!Password item.SubItems(2) = rs!Home rs.movenext Wend End With
Nej, med det med det eksempel jeg har vist skal du først i Visual Basic tilføje componenten Microsoft Windows Common Controls 5 eller 6 lidt afhængig af om du har en service pack installeret. Du tilføjer den under project->Components
Så skal den blot trækkes ind på formen som fx. listbox.
Når du har gjort det så skulle det virke.
Synes godt om
Ny brugerNybegynder
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.