Gå til innhold

Oppdatere en tabell fra datagrid


Anbefalte innlegg

Skrevet

Jeg benytter visual studio 2003 og har her laget et windowsform hvor jeg henter inn en accesstabill i et datagrid.

 

Jeg får fint til å hente å lagre enkelte felter når jeg henter opp ordinære kolonner.

Men når jeg legger til SELECT SUM([kolonne1 * [kolonne2]) AS kolonne3

 

Da greier den ikke automatisk å lage insert update og delete kommandoene,

Noen av dere som kan hjelpe med dette eller en annen måte å legge sammen 2 kolonner på.

 

Eller er bedre å benytte VB-script direkte til det istedet?

Videoannonse
Annonse
Skrevet

Hvordan i allverden skal den vite hvilken kolonner den skal lage insert/update for? Skal den putte halvparten av tallet i kolonne1 og halvparten i kolonne 2? :!:

 

Skriv SQL setningene selv du.....

Skrevet

Jeg har 2 datagrid som henter inn 4 kolonner hver.

Select ID, Felt2, Felt3, Felt4

FROM Tabellnavn

den andre med

SELECT ID, Felt5, Felt6, SUM([Felt5] * [Felt6]) AS Felt6

From Tabellnavn

 

Grid1 lager inser/update uten problemer med Grid2 greier den ikke.

 

Eneste forskjeller her er jo at jeg ber den summere Felt5 og Felt6 å sette resultatet inn i Felt7 (Felt 1-7 er kolonnenavn)

 

Så du mener den ikke skjønner hvilke felter den skal oppdatere?

 

kommandoene blir generert automatisk for Grid 1. hvorfor da ikke for Grid2?

Skrevet
Så du mener den ikke skjønner hvilke felter den skal oppdatere?

Stemmer :thumbup:

 

kommandoene blir generert automatisk for Grid 1. hvorfor da ikke for Grid2?

Fordi den ikke skjønner hvilke felter den skal oppdatere.

 

 

Er det så stort problem å skrive dem selv da?

Skrevet
Jeg antar at du forstår at om jeg hadde kunne skrevet dem selv, hadde jeg ikke postet mitt spørmål her inne. :dontgetit:

 

Det forstod jeg ikke. Se på UpdateCommand og InsertCommand fra den første grid'n din. Å skrive den om til den enkle spørringen du gjør i grid 2 bør du klare.

Skrevet

Update til grid 1 er slik:

UPDATE Tabellnavn SET [Felt5] = ?, [Felt6] = ?, [Felt7] = ? WHERE (ID = ?) AND ([Felt7] = ? OR ? IS NULL AND [Felt7] IS NULL) AND (Felt5 = ? OR ? IS NULL AND [Felt5] IS NULL) AND ([Felt6] = ? OR ? IS NULL AND [Felt6] IS NULL)

 

Jeg forøkte da å kopiere den inn å endre tin til dette:

 

UPDATE Tabellnavn SET [Felt2] = ?, [Felt3] = ?, [Felt4] = ? WHERE (ID = ?) AND ([Felt4] = ? OR ? IS NULL AND [Felt4] IS NULL) AND (Felt3 = ? OR ? IS NULL AND [Felt3] IS NULL) AND ([Felt2] = ? OR ? IS NULL AND [Felt2] IS NULL)

 

Men jeg har å forsøkt i flere timer idag legge inn noe annet siden spørringen er litt anderledes, men kommer ikke frem til riktig løsning. det er grunnen til at jeg spurte her.

Skrevet

Når jeg nå kjører debug å forsøker å endre en post i tabellen får jeg opp meldingen: diskfeil eller nettverksfeil, altså en ny feilmelding den forriga var at parameter 6 var feil. men ikke denne gangen

Skrevet
FEilmeldingen er: Parameteren?_6 har ingen standardverdi

 

Regner med at du får dette ved INSERT? Det er fordi databasen din ikke lar deg legge inn en rad uten at "Felt6" er spesifisert.

Skrevet (endret)

Etter litt om og men fikk jeg det til slutt til, men nå oppsto seff et nytt problem.

 

Den oppdaterer kolonne 1 og 2 i databasen idet jeg trykker på "save" knappen men kolonne 3 blir ikke endret i databasen før jeg legger inn nye verdier i kolonne 1 og 2 og lagrer på nytt, da oppdateres kolonne 3 med summen av de gamle verdier i kolonne 2 og 3.

 

Noen som har noen ide om hvorfor den ikke oppdaterer kolonne 3 samtidig med 1 og 2?

Endret av CerrUnozZ

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...