Avatar billede bildsoe Nybegynder
22. februar 2011 - 12:32 Der er 9 kommentarer og
1 løsning

Hvordan commit'er jeg updates til en database

Hej

Jeg har sat en lille form-applikation op der udfører nogle simple queries på en Access-database. Alt der henter data virker fint. Jeg har så også tilføjet en update-query. Men når jeg lukker Visual C# Express og åbner det igen, er alle mine ændringer forsvundet. Det er som om den opretter en kopi af databasen som jeg arbejder i mens applikationen kører og når jeg så lukker programmet er den væk. Hvordan kan dette være? Og hvordan forhindrer jeg det?

Mvh
Thomas
Avatar billede bildsoe Nybegynder
22. februar 2011 - 12:35 #1
Er det fordi at ændringer foretaget i en database under debug ikke gemmes?
Avatar billede neoman Novice
22. februar 2011 - 12:38 #2
Du har verificeret din update-query kører, og hvis den gør, at evt kriterier er opfyldt, og at data så vitterligt er opdateret, altså inden du lukker ned?
Avatar billede neoman Novice
22. februar 2011 - 12:41 #3
#1 Access er en ret dum DB, så den har ingen "fancy" features - hvis data er opdateret så er de opdateret :-), altså medmindre du kører transaktioner
Avatar billede bildsoe Nybegynder
22. februar 2011 - 13:18 #4
Altså, jeg bruger jo VSE som interface til det hele. Jeg får ingen fejlmeldinger. Men kan godt se at tabellerne i databasen ikke er opdateret, men debugger jeg igen, så er dataene rettet. Det er først når jeg lukker programmet og åbner det igen. Så har den lavet en rollback til de gamle data.

Jeg forestillede mig heller ikke at den var intelligent :) - tværtimod. Tænkte mere det kunne være den måde VSE håndterer det hele på. Så den måske laver en kopi af databasen man arbejder på sålænge man debugger og den slettes når VSE lukkes ned.
Avatar billede bildsoe Nybegynder
22. februar 2011 - 13:25 #5
Jeg har prøvet at tage .exe filen og de andre filer den opretter i debug og kopiere ud i et andet bibliotek, inkl. databasen. Og ganske rigtigt når det ligger der, så er opdateringerne i databasen permanente. Så går ud fra at det er noget der har med debug at gøre.
Avatar billede neoman Novice
22. februar 2011 - 13:31 #6
Nu har jeg kørt med en ældre udgave af VS for et stykke tid siden, og er dybt forbløffet over en feature der laver en midlertidig kopi af databasen :-)

Kører du med datasets? eller simple queries der direkte tilgår records i tabellerne i db'en ?  Mangel på fejlmeldinger er i sig selv ikke bevis på at noget er sket eller ikke sket. Har du steppet gennem din kode for at se om querien kører når den skal? Har du checket om evt. kriterier er opfyldt?

Du nævner "kan godt se at tabellerne ikke er opdateret" - det er måske et godt sted at starte at spørge hvorfor er de ikke det. Og roll-back? Lyder igen ret mystisk - jeg tvivler på det er noget den gør af sig selv, så der må være noget kode der laver ændringer  -din query som kører en uforudset omgang? Sæt et break point i koden og se hvad der sker.
Avatar billede arne_v Ekspert
22. februar 2011 - 13:55 #7
Har du kopieret en databasen ind i dit projekt?

Jeg mener at default er at VS kopierer alle den slags filer fra src til bin når der skal køres.

Og så starter man med samme fil hver gang.
Avatar billede bildsoe Nybegynder
22. februar 2011 - 14:13 #8
Ja, jeg har valgt at den skal kopiere databasen ind i mit projekt. Dvs jeg kan se at den ligger i min projektmappe:

Visual Studio 2008\Projects\caseHandler\caseHandler\db.accdb

men kan så se at der i debug-mappen også ligger en database. Som bliver kopieret dertil hver gang jeg vælger at debugge. Så jeg må gå ud fra at det der sker er at de rettelser man laver under debug mistes fordi den kopierer kildedatabasen hver gang?
Avatar billede bildsoe Nybegynder
31. maj 2011 - 12:50 #9
Arne_v, smider du et svar, så får du points.
Avatar billede arne_v Ekspert
31. maj 2011 - 14:36 #10
svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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