Avatar billede mothwe Nybegynder
18. januar 2003 - 13:00 Der er 6 kommentarer og
1 løsning

ASP, SQL, Access?

Hej!

Jeg har et lille problem med en Access-db til ASP.

Jeg har en db med to forskellige tabeller - en login-tabel der indeholder brugernavne (email-adr) samt password samt en tabel der indeholder brugernes profiler.

Når man fra hjemmesiden vælger "Opret/ret profil" kommer man ind på en side, hvor brugerens profil hentes ind i TEXTAREA's fra tabellen profiler ud fra et sessionnavn som er brugerens email-adr. - dette virker naturligvis fint, så længe der er en profil tilknyttet mail-adressen - men hvis der ikke er oprettet en profil til den aktuelle mail-adr er der naturligvis ikke noget at hente fra tabellen, hvorfor der så bare skal komme tomme TEXTAREA's frem - dette kan jeg bare ikke få til at virke!

Nogle ideer?
Avatar billede mothwe Nybegynder
18. januar 2003 - 13:08 #1
Her er noget af det kode jeg har lavet:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("db/links.mdb")

SQLstmt = "SELECT * FROM profiler WHERE  mail='" & session("brugernavn") & "'"

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)

%>

<FORM METHOD="post" ACTION="default.asp?mode=retprofil">

<INPUT TYPE="text" NAME="navn" VALUE="<%=rs("navn")%>" SIZE="30" MAXLENGTH="50">

<TEXTAREA NAME="profil"><%=rs("profil")%></TEXTAREA>

<INPUT TYPE="submit" VALUE="Ret/opret profil">

</FORM>

<%

rs.Close
Set rs = Nothing

Conn.Close
set Conn = Nothing
Set SQLstmt = nothing

Men når der ikke er oprettet en post i tabellen profiler i databasen der matcher session("brugernavn"), så går den kold - i det tilfælde skal den blot returnere tomme felter som brugeren kan udfylde!
Avatar billede eagleeye Praktikant
18. januar 2003 - 13:08 #2
Hvis du hendter data er det sikker noget i stil med:

SQL = "SELECT * FROM profil WHERE email = '" & Session("brugeremail") & "'"

Såkan du gøre sådan her:

Set rs = Conn.execute(SQL)
if NOT rs.EOF then
  'Bruger profilen findes
  navn = rs("navn")
  adresse = rs("adresse")
  osv..

else
  'Bruger profilen findes ikke
end if
%>

Når du så laver form'en kan du bruger de variable med teksten fra databaen navn,adresse osv..

Navn : <input type="text" name="navn" value="<%=navn%>">
Aderesse : <input type="text" name="adr" value="<%=adresse%>">

Hvis profilen ikke findes vil de variable navn, adresse osv være tomme og dermed er formen også tom.
Avatar billede mothwe Nybegynder
18. januar 2003 - 13:12 #3
eagleeye> Ja, men så skal der i stedet for din else-sætning komme:

Navn : <input type="text" name="navn" value="">
Aderesse : <input type="text" name="adr" value="">

Hvordan gør jeg det?
Avatar billede mothwe Nybegynder
18. januar 2003 - 13:13 #4
Nåååå .. undskyld - du havde svaret - tak!
Avatar billede mothwe Nybegynder
18. januar 2003 - 13:18 #5
eagleeye> Dit løsning returnerer:

Error Type:
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/brinkster/default.asp
Avatar billede mothwe Nybegynder
18. januar 2003 - 13:25 #6
Har løst den nu!
Avatar billede eagleeye Praktikant
18. januar 2003 - 13:26 #7
Hvis du bruger rs("kolonne") efter denne if sætning og der ingen bruger profil er vil den fejl komme:

if not rs.EOF then

else

end if

Response.write rs("kolonnnenavn")  'Hvis der ikke er en profil vil der give den fejl
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