webForumDet fria alternativet

datum, öka månad

.NET

7 svar · 309 visningar · startad av greggan

Medlem sedan jan. 2004678 inlägg
Frågan#1

Vet inte riktigt vad jag ska söka på, men jag har sökt runt och inte hittat vad jag vill ha.

Jag har en kolumn i en databas, om datumet i den kolumnen har gått ut så kan man inte se vissa sidor. Om man nu vill förnya det här datumet så ska man kunna göra det även om datumet inte har gått ut, eller också om det har gått ut. Man ska också kunna göra det om man aldrig gjort det förut, dvs om kolumnen är tom.

det ser ut såhär.

Dim cn as new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=E:\Inetpub\databaser\tihi.mdb;")
dim cmd as new oledbcommand("Select viptom from users where userid=" & session("userid") & "",cn)
dim cmd2 as new oledbcommand("UPDATE users SET(viptom) VALUES[b]('" & datetime.now.month + 1 & "')[/b] where userid=" & session("userid") & "",cn)
dim cmd3 as new oledbcommand("UPDATE users SET(viptom) VALUES[b]('" & "viptom".month + 1 & "')[/b] where userid=" & session("userid") & "",cn)
dim dr as oledbdatareader
cn.open()
dr = cmd.ExecuteReader()
dr.read()
if dr("viptom").tostring = "" Then
cmd2.executenonquery()
elseif datediff("n" dr("viptom"), now()) > "0" Then
cmd2.executenonquery()
else
cmd3.executenonquery()
end if
dr.close
cn.close

jag vet dock inte riktigt hur jag ska göra när det gäller vilket datum som ska in i fältet.

Om fältet var tomt innan så ska dagens datum + 1 månad in.
Om fältet hade ett gammalt datum minst en minut äldre än datumet just nu så ska datumet som ska in vara dagens datum + 1 månad.
Om datumet är något datum längre fram i tiden så ska datumet var det datumet plus en månad.

Vet inte riktigt hur jag ska skriva.

Jag har lyckats gallra ut dessa olika i min IF-sats, dock vet jag inte riktigt hur jag ska skriva så att jag lägger till en månad.

Dessutom vore det bra att det inte blir typ 31:a februari bara för att man la till en månad den 31:a Januari. Vore bättre om det då blev typ 3:e mars.

Hjälp mig!! Hur skajag göra?? :q

Medlem sedan juni 20019 024 inlägg
#2
datumobjektet.AddMonth(1)
Medlem sedan jan. 2004678 inlägg
#3

'AddMonth' is not a member of 'Date'.

dim datum as string = now().AddMonth(1)
Medlem sedan okt. 20005 273 inlägg
#4
[red]
dim datum as string = DateAdd(DateInterval.Month, 1, Now())
[/red]

mv icaaq

Medlem sedan juni 20019 024 inlägg
#5

greggan skrev:

'AddMonth' is not a member of 'Date'.

dim datum as string = now().AddMonth(1)

My bad, AddMonths ska det vara. Läs gärna manualen också.

Medlem sedan jan. 2004678 inlägg
#6

jo det blev bättre så.. men nu blir det något annat fel, vet inte om det har med datumdelen att göra eller om det är något annat...

Syntax error in UPDATE statement.

dim cmd3 as new oledbcommand("UPDATE users SET(viptom) VALUES(" & datum2 & ") where userid=" & session("userid") & "",cn)

och datum2 ser ut såhär:

dim datum2 as string = dr3("viptom").addmonths(1)

det den läser ut ifrån viptom är ett datum och sen kör den då addmonths(1) på det datumet. det borde ju stämma.. eller?

Medlem sedan okt. 20005 273 inlägg
#7

Du har blandat ihop INSERT med UPDATE...
en update ser ut som följer

[red]
dim cmd3 as new oledbcommand("UPDATE users SET viptom = '" & datum2 & "' where userid=" & session("userid") ,cn)[/red]

mv icaaq

Medlem sedan jan. 2004678 inlägg
#8

oj oj oj... jag har verkligen kodat för mycket idag.. lite klantigt av mig... :/
tack så mycket båda två! =D

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)