Just nu i M3-nätverket
Gå till innehåll

Error (fel i rad)


kjell3

Rekommendera Poster

Jag har skrivit den här frågan i ett annat forum men jag provar här också.

 

Jag har gjort en E-post katalog i Asp där jag gjort så att den som vill lägga in sin mail i katalogen skapar först sitt eget login och password för att dom senare ska kunna redigera sina uppgifter. Värderna sparas i en Access databas. Problemet är att jag ställt Login som unik (inga dubletter)i Access.

Om nu någon råkar skriva samma login så blir det ett felmeddelande: Fel i rad

Kan någon hjälpa mig med hur jag ska lösa det.

Jag har helt kört fast!

 

Det borde ju gå att den känner av om det ordet är upptaget innan den skapar ett nytt login. Och är det upptaget så skriver den helt enkelt att den fanns skriv in ett nytt, men som sagt jag har helt kört fast.

Skickar med koden:

 

<%

Set MinCon = Server.CreateObject("ADODB.Connection")

Set rs = Server.CreateObject("ADODB.Recordset")

strAccessDB = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../data/mail.mdb")

MinCon.Open strAccessDB

 

SQL = "SELECT * From maillista WHERE 1=2"

rs.Open SQL, MinCon, 1, 2

 

 

rs.AddNew

rs("Namn") = Request.Form("Namn")

rs("Password") = Request.Form("Password")

rs("Login") = Request.Form("Login")

rs("Epost") = Request.Form("Epost")

rs.Update

rs.Close

set rs =nothing

MinCon.Close

set MinCon = nothing

 

%>

Länk till kommentar
Dela på andra webbplatser

Benni Svensson

Först av allt, så måste jag varna för den typ av unikt värde som du har. Det är alltid bättre med ett id nr.

Om du nutrots allt skall behålla vad du ha, så är det ju till att hämta upp värdet ifrån databasen, och kolla om det finns ett likadant värde där.

Någonting sådant här:

 

SQL = "SELECT * From maillista WHERE 1=2"

rs.Open SQL, MinCon, 1, 2

 

 

do until rs.EOF

if rs("Login") = Request.Form("Login") Then

Response.Write "Du måste välja ett annat Login namn"

Else

 

rs.AddNew

rs("Namn") = Request.Form("Namn")

rs("Password") = Request.Form("Password")

rs("Login") = Request.Form("Login")

rs("Epost") = Request.Form("Epost")

rs.Update

End If

rs.MoveNext

Loop

 

rs.Close

set rs =nothing

MinCon.Close

set MinCon = nothing

*****************

Nu är detta helt torrkodat, men ungefär så där skulle jag göra.

Benni

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tyvärr, jag provade ditt tips men icket. Först fick jag syntaxfel i include file="functions.inc, där stog det: Function FixaTecken(sfix)

och sedan ville han ha loop.

Jag får nog ge mig........

Länk till kommentar
Dela på andra webbplatser

Benni Svensson

Varför har du den filen där??

(det visar ju inte din kod).

Som jag skrev så är det torrkodat, så du får ju testa lite.

Om han ville ha en loop, så innebar det att jag la till loopen på fel ställe, ändra efter error.

Länk till kommentar
Dela på andra webbplatser

Jag tog bort include filen, då fick jag felet att den ville ha en loop, jag lade dit det och då gick han vidare och visade en helt blank sidan (samma sida), tyvärr är jag ny i det här så det är väl det som är problemet.

Länk till kommentar
Dela på andra webbplatser

Benni Svensson

Har du tittat efter om du har fått in någonting i databasen?

Har du det så är det ju lugnt.

Men som scriptet är utformat, så skulle du bara fått en felinikation om någonting blev fel, m a o det skall ju bli en blank sida, om du inte lägger till någon ting.

Du kan ju lägga till en Respons.Write "Dina uppgifter är nu inlagda" i raden under rs.update.

Ta sedan och läs lite böcker, kolla runt på lite olika siter om ASP och VBScript(även andra språk). Det är ända sättet. Att för varje detalj man får fel, går inte att fråga om.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...