Avatar billede xfox Nybegynder
29. december 2003 - 22:23 Der er 9 kommentarer og
1 løsning

dataset refresh

Når jeg prøver at refresh'e mit dataset virker det fint, undtagen hvis jeg har slettet en record. Den vil den ikke fjerne. Hvis jeg ændre noget viser den ændringen med det samme, men hvis en record bliver slettet bliver den stående i dataset'et som om at den stadig er der. Hvad gør jeg galt?

DA.Fill(DataSet11, "ejerdata")
Avatar billede kinggenesis Nybegynder
30. december 2003 - 09:13 #1
Du skal gemme ændringerne først:

If DataSet11.HasChanges Then
  DA.Update(DataSet11.GetChanges(),  "ejerdata")
End If
Avatar billede xfox Nybegynder
30. december 2003 - 11:26 #2
Det er det samme. Selvom at jeg går direkte ind i databasen og sletter en post efter at jeg har brugt fill metoden én gang bliver posten stadig stående i mit datagrid. Hvis jeg tilføjer en post, kommer der godt nok en ny post i datagrid'et, og hvis jeg laver en ændring ved en post kommer de også med, når jeg bruger fill kommandoen bagefter, men altså bare ikke hvis jeg sletter en post. Det kan den ikke helt finde ud af.
Avatar billede kinggenesis Nybegynder
30. december 2003 - 14:11 #3
Kan du ikke generere dit DataSet igen og så  køre DA.Fill?
Avatar billede xfox Nybegynder
30. december 2003 - 19:25 #4
Det er en funktion der skal være mulig mens programmet kører. Altså hvis man sletter en post under programkørsel, skal det være muligt at lave en refresh funktion, således at det er de rigtige poster der bliver vist i mit datagrid.
Avatar billede kinggenesis Nybegynder
30. december 2003 - 21:13 #5
Jeg forstår dig nok ikke helt. Jeg ville mene at du bare skulle køre det kode det til at starte med fylder dit DataGrid, igen.

Ellers må det være noget data binding du snakker om?
Avatar billede xfox Nybegynder
30. december 2003 - 22:18 #6
Jeg forstå godt din tvivl. Min første tanke var også "bare" at køre den kode igen der fylder dataset'et. Det virker også hvis jeg har ændret eller tilføjet en post i mellem tiden, men bare ikke hvis jeg har slettet en post. Det var egentlig det spørgsmålet gik på: Hvorfor virker det undtagen når jeg har slettet en post. Det er det jeg syntes der er mærkeligt. Posten er væk fra databasen, men bliver i dataset'et, eller bliver i hvert fald i datagrid'et. Håbede at nogle havde haft samme problem.
Avatar billede kinggenesis Nybegynder
31. december 2003 - 11:53 #7
Hmm. Så skal vi vist se lidt kode.
Avatar billede xfox Nybegynder
31. december 2003 - 12:11 #8
Her er lige et eksempel:
Jeg åbner min form og henter data ind i mit datagrid med koden:
DA.Fill(DataSet11, "ejerdata")
Mens programmet kører tilføjer jeg en post direkte i databasen.
Jeg trykker på en knap "opdater" der har samme kode:
DA.Fill(DataSet11, "ejerdata")
Opdateringen sker og posten bliver tilføjet i mit datagrid.
Mens programmet stadig kører, sletter jeg en post direkte i min database.
Trykker derefter igen på knappen opdater, og ingen ændring sker i mit datagrid. Den slettede post optræder der stadig.
Jeg har valgt at lave ændringerne direkte i databasen for eksemplets skyld.
Avatar billede kinggenesis Nybegynder
31. december 2003 - 13:45 #9
hvad vis du kære noget i denne stil:

        Dim DataSet11 As New DataSet()
        Da.Fill(DataSet11, "ejerdata")
        DataGrid1.DataSource = DataSet11.Tables(0)
Avatar billede xfox Nybegynder
31. december 2003 - 14:18 #10
Sådan det var lige det der skulle til. Hvorfor den godt ville ændre og tilføje, men ikke slette, er mig dog stadig en gåde. Dit eksempel virker dog. Tak for hjælpen(og besværet).
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