Avatar billede sandrasmurf Nybegynder
07. februar 2008 - 01:24 Der er 4 kommentarer og
1 løsning

Update DB med ændringer foretaget i DataGridView

Hej eksperter

Der er åbenbart mange andre end mig, der ikke helt har set lyset for hvordan man kan få ændringer, foretaget i en databound datagridview til at propagere ned i den databound'ede DB. Jeg har ikke fundet svaret på mine problemer i Google eller herinde, så nu forsøger jeg mig med et spørgsmål.

Jeg har trykket mig til alt det nedenstående gennem VS og den generere sørme en del kode. Især i dataset delen. Peeew.

Jeg har et dataset, en bindingsource til en specifik tabel og en TableAdapter sat op. Jeg kan vise mine data i et datagridview, men vil gerne kunne ændre direkte i grid'en og herefter skal de ændrede data også ende i min DB. Til det formål har jeg indsat en Update knap på min form.

Jeg har forsøgt mig med følgende i update knappens tryk-event ->
this.myTableAdapter.Update(this.myDataSet.myDataTable);

Der sker desværre ikke det store. Når jeg lukker formen og kører den igen, så er min data uændret.

Kan nogen udrede princippet for Update, Insert og Delete for en rookie, der meget gerne vil lære mere om den fagre verden for DataBinding.

Det er super smart, at man bare ved et par klik kan få sat en DataGrid op, der viser data fra en DB-tabel. Men kunne man udvide med et par klik mere og så understøtte edit operationer, så ville verden da være et bedre sted.

Håber at nogen kan hjælpe.
Avatar billede powerpunk Nybegynder
07. februar 2008 - 09:31 #1
Jeg har lavet en simpel windows form. Trukket et DataGridView ind, sat DataSource på grid'et til at pege på en tabel i min SQL Server 2005 og lavet en update knap, der gør som du beskriver.

Det virker helt efter hensigten, med edit, update og inserts.

Er du sikker på at dit knap event kører?
Hvad er det for en type DataSource du bruger?
Avatar billede sandrasmurf Nybegynder
07. februar 2008 - 11:00 #2
Jeg bruger i øjeblikket en Access DB og jeg er helt sikker på at min knap-event spiller.
Avatar billede powerpunk Nybegynder
07. februar 2008 - 12:00 #3
Er din database-fil en del af dit projekt?
I så fald, er "Copy to Output directory" så sat til "Copy Always"?

Det kunne meget nemt være problemet, fordi du så laver ændringer i den kopi af filen der ligger i [PrjoctDir]\bin\debug, som du så overskriver med den oprindelige hver gang du bygger...
Avatar billede sandrasmurf Nybegynder
07. februar 2008 - 13:26 #4
Mens jeg klikkede løs i VS og fik sat DataBindingen op, blev jeg spurgt om jeg ville kopiere databasen ind som en local ressource. Den sagde jeg i min uvidenhed ja til. Dough.

Så du har fuldstændig ret. Hver gang jeg starter programmet bliver der lagt en frisk version af databasen ind i bin/debug mappen, som den databinder til. Når jeg undersøger databasen efter at programmet har kørt kan jeg også se, at mine ændringer er foretaget. Det hjælper bare ikke så meget, når en genstart af programmet medfører, at den opdaterede DB overskrives med den gamle.

Jeg slettede alt dataset, bindingsource og tableadapter relateret og startede klikkeriet forfra. Det tog max 5 minutter, så var jeg kørende igen med en database man kan ændre i gennem sit Grid.

Så nu spiller det. Tak for hjælpen. Det er skarpt set. Havde aldrig fundet ud af det selv.

Smid et svar
Avatar billede powerpunk Nybegynder
07. februar 2008 - 13:43 #5
Det var såmænd så lidt :-)

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