Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 15:08 Der er 20 kommentarer og
1 løsning

sum af kolonne

har været i gang med dette før men det er først nu jeg får taget mig rigtigt sammen til at gøre noget ved det. Jeg har en dynamisk tabel der bliver indtastet et timeforbrug i. Jeg kunne så tænke mig at i en td skrive den totale sum af timer. Jeg fik i en tidligere tråd den besked at sum vil addere antallet af timer. Men jeg er lidt i tvivl om fremgangsmåden. Er der mon en venlig sjæl der kunne give mig et bud på hvordan min response.write skal se ud? lad os sige at kolonnen (meget genialt 8>))kaldes hours - skal jeg så skrive noget i stil med "Response.write sum (hours) " eller hur?
Avatar billede softspot Forsker
01. marts 2006 - 15:13 #1
Jeg kan ikke lige gennemskue om du henter data i en database eller hvad (men det vil jeg som udgangspunkt antage). I så fald ville jeg jo finde summen af alle timer ved at køre flg. SQL:

sql = "SELECT sum(hours) FROM tabellen"
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 15:26 #2
ok - tak, jo jeg henter data fra en access database, jeg prøver lige om jeg kan få det til at virke og vender så tilbage med point
Avatar billede innercitydk Nybegynder
01. marts 2006 - 15:30 #3
hvis dine timer ligger i et array kan det se således ud:

Imports System
Imports System.Collections.Generic
Imports System.Collections
Imports System.Text
Namespace eksperten_array_sum

Class Program

  Shared Sub Main(ByVal args As String())
    Dim timer As ArrayList = New ArrayList
    Dim rnd As Random = New Random
    Dim time As Double
    Dim resutat As Double = 0
    time = 10
    timer.Add(time)
    time = 15
    timer.Add(time)
    time = 5
    timer.Add(time)
    time = 7.7
    timer.Add(time)
    time = 5.6
    timer.Add(time)
    For Each d As Double In timer
      resutat += d
    Next
    Console.WriteLine(resutat.ToString)
  End Sub
End Class
End Namespace
Avatar billede innercitydk Nybegynder
01. marts 2006 - 15:31 #4
Arh så ikke din sidste kommentar. skrev imens :)
Avatar billede softspot Forsker
01. marts 2006 - 15:34 #5
innercitydk >> Dit svar passer vist også bedst i .NET-kategorien  :D
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 17:25 #6
det driller lidt - nu sidder jeg ved en ny pc og jeg har glemt hvor det er jeg sætter IE til at vise ASP fejlen - i ved den med at i linienr. XXX er deren fejl
Avatar billede softspot Forsker
01. marts 2006 - 17:29 #7
funktioner / internet indstillinger / avanceret fanen

der skal du finde noget med vis uskadelige HTTP fejl (eller noget i den stil). Det ligger i sektionen "Gennemse"
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 17:37 #8
fandt den tak igen - den brokker sig over denne her måske lidt uden for emnet af denne tråd  objRS ("dato")=Request.Form("dato") = type mismatch. Jeg forsøger at indsætte noget i min access database, hvad er det jeg har overset?
Avatar billede softspot Forsker
01. marts 2006 - 17:42 #9
Måske er Request.Form("dato") tom eller ikke en valid dato...?

Prøv evt. at kontrollere indholdet af Request.Form("dato") inden du indsætter det i feltet (allerbedst ville det være at du validerer alle dine felter inden du indsætter noget som helst i databasen :)). Validering af dato kan gøres med isDate, altså:

if isDate(Request.Form("dato")) then
  objRs("dato") = Request.Form("dato")
end if
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 17:53 #10
cool - tak!! bare smid et svar så må jeg se om jeg kan hitte ud af resten
Avatar billede softspot Forsker
01. marts 2006 - 17:57 #11
Velbekomme :)

Spørg endelig ind, hvis der er noget du skal bruge hjælp til...
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 18:00 #12
Jamen det gør jeg så 8>) Når jeg nu har noget der ligner nedenstående, hvordan kommer jeg afsted med at lave din SQL ? Skal jeg åbne en ny forbindelse når jeg laver den ?

Set objRS=objConn.Execute("SELECT dato,start,slut,bem,timer FROM timer")
Do while Not objRS.EOF
Response.Write("Dato: "& objRS("dato")& "<br/>")
Response.Write("Start: "& objRS ("start") & "<br>")
Response.Write("Slut: "& objRS ("slut") & "<br><p>")
Response.Write("Bem:"& objRS ("bem") & "<br><p>")
Response.Write("Timer:"& objRS ("timer") & "<br><p>")
objRS.Movenext
Loop
Avatar billede softspot Forsker
01. marts 2006 - 18:08 #13
Hvis du vil summere kolonnen timer i tabllen timer, så skal du nok udføre SQL-sætningen for sig selv, f.eks. efter du har gennemløbet indholdet i objRS i din løkke.
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 18:11 #14
ok - takker igen
Avatar billede softspot Forsker
01. marts 2006 - 18:14 #15
Ingen årsag :)
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 18:41 #16
hehe - jeg gør noget galt, ovenfor dette lukker jeg databasen og åbner den så igen men den brokker sig over at "name redefined" ?? <%
Dim objConn
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\empty-site.org\www\timetable\timer.mdb"
objConn.Open () 

Set objRS=objConn.Execute("SELECT sum (timer) FROM timer")
Do while Not objRS.EOF
Response.Write("Timer:"& objRS ("sum") & "<br><p>")
objRS.Movenext
Loop

objRS.Close   
Set objRS = Nothing

objConn.Close
Set objConn = Nothing
%>
Avatar billede softspot Forsker
01. marts 2006 - 18:50 #17
Det er ikke nødvendigt at lukke og åbne forbindelsen igen, du kan bare lave forspørgslen umiddelbart efter din løkke...

Dim objConn, objRS
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\empty-site.org\www\timetable\timer.mdb"
objConn.Open

Set objRS=objConn.Execute("SELECT dato,start,slut,bem,timer FROM timer")
Do while Not objRS.EOF
  Response.Write("Dato: "& objRS("dato")& "<br/>")
  Response.Write("Start: "& objRS ("start") & "<br>")
  Response.Write("Slut: "& objRS ("slut") & "<br><p>")
  Response.Write("Bem:"& objRS ("bem") & "<br><p>")
  Response.Write("Timer:"& objRS ("timer") & "<br><p>")
  objRS.Movenext
Loop
objRS.close

set objRS = objConn.Execute("SELECT SUM(timer) AS sumTimer FROM timer")
if not objRS.eof then
  Response.Write("Timer:"& objRS("sumTimer") & "<br><p>")
end if
objRS.close

objConn.close
Avatar billede maxmuldjord Nybegynder
01. marts 2006 - 19:02 #18
elegant må jeg sige - vil da have lidt flere points?
Avatar billede softspot Forsker
01. marts 2006 - 19:05 #19
nej, det er ikke nødvendigt, ellers tak for buddet :)
Avatar billede innercitydk Nybegynder
01. marts 2006 - 22:23 #20
Hehe softspot det kunne der være noget om. Fra nu af er det slut med at svare på spørgsmål, inden jeg har fået mindst to spande mokka :)
Avatar billede softspot Forsker
01. marts 2006 - 22:25 #21
:D

Jeg har selv lavet det trick et par gange (og jeg drikker desværre ikke mokka, så jeg må bare leve med min fejlbarlighed :))
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
Kurser inden for grundlæggende programmering

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