Avatar billede shosho500 Nybegynder
13. september 2005 - 08:31 Der er 2 kommentarer og
1 løsning

If sætning til database ?

Når jeg tilføjer varer til min database, skal jeg også skrive et varer nummer ind, men der kan jo ikke være to forkellige varer med det samme varer nummer, hvordan får jeg en if sætning til at tjekke i databasen om den værdi allerede findes ?

Et spørgsmål mere, hvad vil være den nemmeste måde at gøre sådan, at jeg ved hvilke varernumre, som findes i databasen, inden jeg indtaster et nyt ?
Avatar billede peter_jensen Nybegynder
13. september 2005 - 08:53 #1
Den bedste måde at gøre dette på er først at lave et sql kald til databasen, hvor du checker om varenummeret allerede findes. Prøv noget der ligner dette:

------------------------------- kode ---------------------------------------
SQLstr = "SELECT varenummer FROM DinTabel WHERE varenummer = '" & Request.form("varenummer") & "'"

set rs = Conn.Execute(SQLstr)
   
If (rs.BOF AND rs.EOF) Then
  'Dette er et tomt recordset...
  Conn.Execute(strSQL2)'Her kalder du så den sql streng som indsætter i databasen
Else
  'Der er poster i recordsettet...
  'response.write "Varenumret findes allerede"' Her indsætter du kode som skal 
    udføres hvis varenummeret allerede findes
End If
------------------------------- kode ---------------------------------------

Koden forudsætter at du sender via en form =:o)

Til dit andet spørgsmål véd jeg at det kan løses ved hjælp at en javascript comboboks der dynamisk søger gennem et array efterhånden som man skriver data ind.
Avatar billede shosho500 Nybegynder
13. september 2005 - 09:08 #2
Min sql streng ser sådan her ud:

Sql = "INSERT INTO produkter (varenummer, varenavn, pris, vaegt, lagerantal, info) VALUES (" & intVareNummer & ",'" & strVareNavn & "'," & curPris & "," & intVaegt & "," & intLagerAntal & ",'" & strInfo & "')"

intVareNummer, er lig med Request.Form("VareNummer"), hvordan får jeg den til at tjekke at det varenummer, som jeg indtaster ikke er magen til et af dem i databasen ?
Avatar billede peter_jensen Nybegynder
13. september 2005 - 12:10 #3
Er ikke helt sikker på jeg forstår din kommentar, men jeg skulle mene at understående kode burde virke hvis du copy/paste den. Selfølgelig skal du lige sørge for at dit tabelsæt og din forbindelse hedder henholdsvis "rs" og "conn".

------------------------------- kode ---------------------------------------

SQLstr = "SELECT varenummer FROM produkter WHERE varenummer = '" & intVareNummer & "'"
'SQL => Finder alle poster hvor (varenummer = intVareNummer)
set rs = Conn.Execute(SQLstr) 'Kalder ovenstående SQL ind i tabelsættet "rs" vha. dataforbindelsen "conn"
   
If (rs.BOF AND rs.EOF) Then    'Hvis tabelsættet er tomt..dvs at der er ikke fundet poster med det nye varenummer
    ' Så opretter du et nyt SQLkald i variablen "SQLstr" der indsætter nye data til tabellen "produkter"
    SQLstr = "INSERT INTO produkter (varenummer, varenavn, pris, vaegt, lagerantal, info) VALUES (" & intVareNummer & ",'" & strVareNavn & "'," & curPris & "," & intVaegt & "," & intLagerAntal & ",'" & strInfo & "')"
Else 'Hvis tabelsættet ikke er tomt...dvs at varenummeret allerede findes, så udføres koden herunder.
      'Her indsætter du kode som skal udføres hvis varenummeret allerede findes
    response.write "Varenummeret findes allerede"
End If

rs.close 'Vi lukker vores tidligere SQL forespørgsel med varenummeret
set rs = nothing 'Vi lukker vores tidligere SQL forespørgsel med varenummeret

set rs = Conn.Execute(SQLstr) 'Her udfører vi så det SQLkald som vi lavede da vi efter det sidste kald fandt ud af at varenummeret endnu ikke fandtes i databasen.

------------------------------- kode ---------------------------------------
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