Uppdatera alla fält (där Id=X) med nya värden.

ASP

14 svar · 302 visningar · startad av qwerty

Medlem sedan jan. 2001391 inlägg
Trådstart#1

När man har uppdaterat kanske 10 olika textfält. Finns det då något sätt att uppdatera hela RS eller måste man göra en UPDATE för varje fält som ska uppdateras med nya värden.

Medlem sedan dec. 19998 577 inlägg
#2

strSQL = "Update tabell Set fält = 'värde'"

Då kommer alla värden i "fält" att få värdet "värde"...

Eller måste du specifikt ha det via ett RS?

Medlem sedan jan. 2001391 inlägg
#3

Nä, det är så här:

Jag har ett formulär där man i ca 10 olika textfält matar in data som sparas i databasen. På min adminsida har jag ett lika dant formulär där jag öppnar respektive databasfält i rätt textfält. Här kan man sedan redigera texten och sedan trycka på uppdatera. Då undrar jag om jag måste uppdatera varje fält eller om man kan uppdatera alla fälten med bara en Sql-rad, eller om man måste ha en för varje fält?

Medlem sedan dec. 19998 577 inlägg
#4

Alltså precis som jag sa ovan... :)

Du anger ju vilka fält som skall uppdateras med din Where-sats, och har du en gemensam nämnare för alla dina tio fält så är det bara att sätta det som Where-krav.

Medlem sedan jan. 2001391 inlägg
#5

Kalla mig gärna idiot men...

strSQL = "Update tabell1 Set fält = 'värde'" WHERE ID ="& id

Vad ska jag skriva där det står värde, och hur i hela världen ska databasen förstå att den ska uppdatera både namn, adress, telefonnummer, mm enligt de ändringar som är gjorda i formuläret.

Kommer inte alla fält att få samma värde med ditt exempel, istället för att uppdateras med värdena från formuläret eller...?

Så här gör jag nu: (i förkortad version)

id = request.form("id")
namn = request.form("namn")
telnr = request.form("telnr")

SQL = "UPDATE Tabell1 SET [namn] ='"& namn &"' WHERE ID ="& id
SQL2 = "UPDATE Tabell1 SET [telnr] ='"& telnr &"' WHERE ID ="& id

con.execute(SQL)
con.execute(SQL2)
osv, osv

... det måste finnas nåt enklare sätt.

och som sagt. Kalla mig gärna idiot, men jag fattar inte ditt exempel.

Medlem sedan juni 200032 967 inlägg
#6
strSQL = "UPDATE Tabell1 SET [namn] ='"& namn &"', [telnr] = '" & telnr & "', [adress] = '" & adress & "' WHERE ID ="& id

osv...

Medlem sedan mars 20002 836 inlägg
#7
SQL = "UPDATE Tabell1 SET " & _
	"[namn] ='"& namn &"', " & _
	"[telnr] = '" & telnr & "' WHERE ID ="& id

con.Execute(SQL)

cya,
PatrikB

Medlem sedan mars 20002 836 inlägg
#8

hmmmm, som vanligt .... @nders e snabbast!!!

cya,
PatrikB

Medlem sedan juni 200032 967 inlägg
#9

förlåt patrik!

jag kan redigera bort mitt svar ovan, om du vill? ;)

Medlem sedan jan. 2001391 inlägg
#10

Tack, tack båda två...alla 3.

Medlem sedan jan. 2001391 inlägg
#11

ledsen att säga det men...

får det inte att funka

SQL = "UPDATE Tabell1 SET " &_
"[namn] ='"& namn &"'," &_
"[telnr] ='"& telnr &"'," &_
"[adress] ='"& adress &"'," &_
"[postnr] ='"& postnr &"'," &_
"[ort] ='"& ort &"'," &_
"[kvot] ='"& kvot &"'," &_
"[betyg] ='"& betyg &"'," &_
"[ggr] ='"& ggr &"'," &_
"[kval] ='"& kval &"'," &_
"[uppgifter] ='"& uppgifter &"'," &_
"[ovrigt] ='"& ovrigt &"'," &_
"[test] ='"& test &"'," &_
"[datum] ='"& datum &"'," &_
"[senast] ='"& senast &"'," &_
"[kon] ='"& kon &"'," &_
"[datum] ='"& datum &"'," &_
"[fraga1] ='"& fraga1 &"'," &_
"[fraga2] ='"& fraga2 &"'," &_
"[fraga3] ='"& fraga3 &"' WHERE ID ="& id

Con.Execute(SQL)

Får följande mess:
Data type mismatch in criteria expression.

...och felet är naturligtvis på execute-raden.

Medlem sedan juni 200032 967 inlägg
#12

då är det något fält av typen tal som har apostrofer runt värdet i din fråga.

text/pm:apostrofer runt värdet
tal:inte.

Medlem sedan jan. 2001391 inlägg
#13

om det är ett datum, hur skriver man då?

testade så här

"[datum] =#"& datum &"#," &_

...men det var tydligen fel

Syntax error in date in query expression '##'.

Medlem sedan juni 200032 967 inlägg
#14

...men det beror på att datum är tomt!

skriv ut sql-frågan med response.write så ser du hur den färdiga frågan ser ut, och då ser du om det är saker som saknas!

Medlem sedan jan. 2001391 inlägg
#15

precis...

hade glömt att skicka med datumet dolt från formuläret.

nu funkar det!

Tack alla som hjälpt mig

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)