Avatar billede peanut2000 Nybegynder
01. april 2004 - 09:49 Der er 1 kommentar og
1 løsning

Omskrivning af kode, måske skal der bruges en løkke

Hej jeg har nedenstående kode, som jeg godt kunne tænke mig at få omskrevet, så det blev pænere at se på. Nogen der har nogle forslag til det???

  ' Opbyg SQL-kommando for kl 9.00
        cmd.CommandText =  "SELECT * FROM Kalender WHERE  Dato = '" & Valgt_dato & "' AND kl = '09.00'"
   
        con.Open()
   
        datareader = cmd.ExecuteReader()  ' Udfør forespørgsel
   
   
        'Gennemløb datareader (result set) for at se om der er mere end 12 personbiler
        dim antal1 as integer
        antal1 = 0
   
        do while datareader.read() = true
   
          antal1 += 1
   
        loop
   
        con.Close()
   
   
   
        ' Opbyg SQL-kommando for kl 10.00
        cmd.CommandText =  "SELECT * FROM Kalender WHERE  Dato = '" & Valgt_dato & "' AND kl = '10.00' "
   
        con.Open()
   
        datareader = cmd.ExecuteReader()  ' Udfør forespørgsel
   
   
   
        'Gennemløb datareader (result set) for at se om der er mere end 12 personbiler
        dim antal2 as integer
        antal2 = 0
   
        do while datareader.read() = true
   
          antal2 += 1
   
        loop
   
        con.Close()
   
   
          ' Opbyg SQL-kommando for kl 11.00
        cmd.CommandText =  "SELECT * FROM Kalender WHERE  Dato = '" & Valgt_dato & "' AND kl = '11.00'"
   
        con.Open()
   
        datareader = cmd.ExecuteReader()  ' Udfør forespørgsel
   
   
   
        'Gennemløb datareader (result set) for at se om der er mere end 12 personbiler
        dim antal3 as integer
        antal3 = 0
   
        do while datareader.read() = true
   
          antal3 += 1
   
        loop
   
        con.Close()

Fortsætter....

Og hvad med dette her:

if antal1 < 1 then
   
                Dim tblTempTider As DataTable
                Dim raekke As DataRow
   
                dsTempTider = session("dataset")
   
                ' Flyt tid ind i dataset
                tblTempTider = dsTempTider.Tables("tempTider")
                raekke = tblTempTider.NewRow()
                raekke("Kl") = "09.00"
                tblTempTider.Rows.Add(raekke)
   
                ' Bind til datagrid
                BindDataGrid()
   
                session("dataset") = dsTempTider
   
            end if
   
   
   
   
            if antal2 < 1 then
   
                Dim tblTempTider As DataTable
                Dim raekke As DataRow
   
                dsTempTider = session("dataset")
   
                ' Flyt tid ind i dataset
                tblTempTider = dsTempTider.Tables("tempTider")
                raekke = tblTempTider.NewRow()
                raekke("Kl") = "10.00"
                tblTempTider.Rows.Add(raekke)
   
                ' Bind til datagrid
                BindDataGrid()
   
                session("dataset") = dsTempTider
   
            end if
   
   
            if antal3 < 1 then
   
                Dim tblTempTider As DataTable
                Dim raekke As DataRow
   
                dsTempTider = session("dataset")
   
                ' Flyt tid ind i dataset
                tblTempTider = dsTempTider.Tables("tempTider")
                raekke = tblTempTider.NewRow()
                raekke("Kl") = "11.00"
                tblTempTider.Rows.Add(raekke)
   
                ' Bind til datagrid
                BindDataGrid()
   
                session("dataset") = dsTempTider
   
            end if
        'end if

....
....
Nogen der kan hjælpe
Avatar billede crunch Nybegynder
03. april 2004 - 19:26 #1
Tja, brug f.eks. et sub til udførsel og en select case der vælger hvilken overordnet funktion du anvender:

select case antal
case antal < 1
minsub("10.00","enandenvariabel")
case antal < 2
minsub("11.00","enandenvariabel")
end select

private sub minsub(variabeltfelt1, variabeltfelt2)
        cmd.CommandText =  "SELECT * FROM Kalender WHERE  Dato = '" & Valgt_dato & "' AND kl = "+variabeltfelt1+" "
        con.Open()
        datareader = cmd.ExecuteReader()  ' Udfør forespørgsel
        'Gennemløb datareader (result set) for at se om der er mere end 12 personbiler
        dim antal2 as integer
        antal = 0
        do while datareader.read() = true
          antal += 1
        loop   
        con.Close()
        Dim tblTempTider As DataTable
        Dim raekke As DataRow
        dsTempTider = session("dataset")
          tblTempTider = dsTempTider.Tables("tempTider")
        raekke = tblTempTider.NewRow()
          raekke("Kl") = variabeltfelt2
        tblTempTider.Rows.Add(raekke)
        BindDataGrid()
        session("dataset") = dsTempTider
end sub
Avatar billede terry Ekspert
29. april 2004 - 20:27 #2
peanut2000, you have quite a few questions opne, this is one of them http://www.eksperten.dk/spm/479294

Could you please respond to them? thanks!
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