Avatar billede loukas Mester
08. august 2002 - 01:45 Der er 12 kommentarer og
1 løsning

Hvad gør jeg ??

Jeg har sådan en stump kode her.
Problemet er at hvis f.eks: color ikke indeholder noget, ja så kommer den slet ikke i DB'en

for i=lbound(vare2) to ubound(vare2)
  Varenr = vare2(i,0)
  Size = vare2(i,1)
  color = vare2(i,2)
  antal = vare2(i,3)
  pris = vare2(i,4)

  if (Varenr <> "") AND (Size <> "") AND (color <> "") AND (antal <> "") AND (pris <> "") then
    Set objRS = Server.CreateObject("ADODB.Recordset")
    Set objRS.ActiveConnection = objconn
    SQL1 = "INSERT INTO Ordrelinie (Ordrenr, Vareid, Antal)"
    SQL1 = SQL1 & " VALUES ('" & idOfNewlyAddedRecords & "', '" & Varenr & "', '" & antal & "')"
    objRS.Open SQL1
    set objRS = nothing
  end if
next
Avatar billede keysersoze Ekspert
08. august 2002 - 02:14 #1
du skriver i din if-sætning at samtlige variabler skal indeholde noget... så enten skal du helt fjerne din if-sætning, eller også skal du til hvert enkel variabel definere en værdi såfremt variablen er tom - altså;

if Varenr = "" then
    Varenr = "intet nummer"
end if
Avatar billede loukas Mester
08. august 2002 - 10:02 #2
Hvis jeg fjerner if-sætningen, kommer der en fejl:
Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/ny/webshop/confirm1.asp, line 193
Avatar billede loukas Mester
08. august 2002 - 10:12 #3
Og det er samme problem på denne måde:-(

for i=lbound(vare2) to ubound(vare2)
 
  Varenr = vare2(i,0)
  if Varenr = "" then
  Varenr = "intet nummer"
  end if
 
  Size = vare2(i,1)
  if Size = "" then
  Size = "intet nummer"
  end if
 
  color = vare2(i,2)
  if color = "" then
  color = "intet nummer"
  end if
 
  antal = vare2(i,3)
  if antal = "" then
  antal = "intet nummer"
  end if
 
  pris = vare2(i,4)
  if pris = "" then
  pris = "intet nummer"
  end if
 

  if (Varenr <> "") AND (Size <> "") AND (color <> "") AND (antal <> "") AND (pris <> "") then
    Set objRS = Server.CreateObject("ADODB.Recordset")
    Set objRS.ActiveConnection = objconn
    SQL1 = "INSERT INTO Ordrelinie (Ordrenr, Vareid, Antal)"
    SQL1 = SQL1 & " VALUES ('" & idOfNewlyAddedRecords & "', '" & Varenr & "', '" & antal & "')"
    objRS.Open SQL1
    set objRS = nothing
  end if
next
Avatar billede keysersoze Ekspert
08. august 2002 - 10:33 #4
hvilke felttyper er de tre kolonner i databasen?
Avatar billede loukas Mester
08. august 2002 - 11:53 #5
de er alle 3 af typen 'tal'
Avatar billede loukas Mester
08. august 2002 - 11:54 #6
men hvis size, color antal osv. indeholder noget, ja så er der ingen problemer de kommer fint ind i DB'en
Avatar billede loukas Mester
08. august 2002 - 11:56 #7
Hvis de indholder noget laver den jo LOOPET igen, altså er det ikke så godt at give dem en værdi hvis de er tomme ?!?!?!?!
Avatar billede keysersoze Ekspert
08. august 2002 - 11:58 #8
der skal heller ikke plinger (') omkring tal-felter...

ellers tror jeg ikke jeg er helt med :o/
Avatar billede loukas Mester
08. august 2002 - 11:58 #9
Du får lige hele skidtet ;-)
Skal på arbejde nu :-)
Vender tilbage senere...

strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & Server.Mappath("db/webshop.mdb") & ";"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConnection

Set objRS = Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection = objconn

strSQL = "INSERT INTO Kunder ( Navn, Efternavn, Adresse, Postnr, City, Email ) "   
strSQL = strSQL & " VALUES('" & strNavn & "','" & strEfternavn & "','" & strAdresse & "','" & strPostnr & "','" & strCity & "','" & strEmail & "')"

objconn.Execute(StrSQL)
'************************************************************************************

'************ INDSÆT ORDRER *********************************************************
Set RS = objConn.Execute( "SELECT @@IDENTITY" )
idOfNewlyAddedRecord = RS(0)
RS.Close

SQL = "INSERT INTO Ordrer (KundeID, tid, Ordredato)"
SQL = SQL & " VALUES (" & idOfNewlyAddedRecord & ", #" & now & "#, #" & date & "#)"

objconn.Execute(SQL)






Set RS = objConn.Execute( "SELECT @@IDENTITY" )
idOfNewlyAddedRecords = RS(0)
RS.Close




If IsArray(Session("vare")) = false Then
  Dim vare2(19,4)   
  vare2(1,0) = Request.QueryString("item")  'Vare nr eller anden ID
  vare2(1,1) = Request.Querystring("size")  'Størrelse
  vare2(1,2) = Request.QueryString("color") 'Farven
  vare2(1,3) = Request.QueryString("count") 'Antalet af varen man vil købe
  vare2(1,4) = Request.QueryString("pris")  'Varens pris
  Session("vare") = vare2
else
  vare2=session("vare")
  incart=false
  for i=lbound(vare2) to ubound(vare2)
    if vare2(i,0) = Request.QueryString("item") AND vare2(i,1) = Request.Querystring("size") AND vare2(i,2) = Request.Querystring("color") and not(incart) then
      'Opdater Countet
      vare2(i,3) = vare2(i,3) + CInt(Request.QueryString("count")) 'Antalet af varen man vil købe
      incart=true
    end if
    if vare2(i,0)="" and vare2(i,1)="" and not(incart) then
      'Ligger nu vare i kurven
      vare2(i,0) = Request.QueryString("item")  'Vare nr eller anden ID
      vare2(i,1) = Request.Querystring("size")  'Størrelse
      vare2(i,2) = Request.QueryString("color") 'Farven
      vare2(i,3) = Request.QueryString("count") 'Antalet af varen man vil købe
      vare2(i,4) = Request.QueryString("pris")  'Varens pris
      incart=true
    end if
  next
  session("vare")=vare2
end if

strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & Server.Mappath("db/webshop.mdb") & ";"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConnection


for i=lbound(vare2) to ubound(vare2)
 
  Varenr = vare2(i,0)
  if Varenr = "" then
  Varenr = "intet nummer"
  end if
 
  Size = vare2(i,1)
  if Size = "" then
  Size = "intet nummer"
  end if
 
  color = vare2(i,2)
  if color = "" then
  color = "intet nummer"
  end if
 
  antal = vare2(i,3)
  if antal = "" then
  antal = "intet nummer"
  end if
 
  pris = vare2(i,4)
  if pris = "" then
  pris = "intet nummer"
  end if
 

  if (Varenr <> "") AND (Size <> "") AND (color <> "") AND (antal <> "") AND (pris <> "") then
    Set objRS = Server.CreateObject("ADODB.Recordset")
    Set objRS.ActiveConnection = objconn
    SQL1 = "INSERT INTO Ordrelinie (Ordrenr, Vareid, Antal)"
    SQL1 = SQL1 & " VALUES ('" & idOfNewlyAddedRecords & "', '" & Varenr & "', '" & antal & "')"
    objRS.Open SQL1
    set objRS = nothing
  end if
next
Response.write "</table>"
Avatar billede loukas Mester
08. august 2002 - 12:02 #10
Jeg har prøvet at fjerne (')
det er det samme :-(
Avatar billede keysersoze Ekspert
08. august 2002 - 16:24 #11
hvis det er tal-felter kan du jo heller ikke indsætte "intet nummer" - så skal det jo netop være et tal
Avatar billede loukas Mester
09. august 2002 - 00:10 #12
aaargh !"#
Selvfølgelig  !!!!
Nå tak for hjælpen
Avatar billede keysersoze Ekspert
09. august 2002 - 01:50 #13
np :)
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