SELECT sats från en session

ASP

8 svar · 241 visningar · startad av henkeny

Medlem sedan maj 200152 inlägg
Trådstart#1

Ska hämta ut lite data från en databas. Men jag vill bara hämta datan för en viss användare. När användaren loggar in sätter jag en session med användarnamnet i. När jag sedan på en annan sida ska hämta datan tänkte jag använda just den här session. Tänkte nåt i den här stilen:

Editera = "SELECT * FROM users WHERE Username = '% " Session("username") " %' "

Att det är fel förstår jag, men är jag inne på rätt spår eller är jag helt ute och cyklar??

Medlem sedan juni 200032 967 inlägg
#2

Du är inte alls helt fel ute, du har bara glömt &-tecknen för konkateneringen.

Editera = "SELECT * FROM users WHERE Username = '" & Session("username") & "' "

När du gör en jämförelse med = skall du dock inte ha %-tecken med heller, dessa hör till LIKE-operatorn.

Mvh,

Medlem sedan mars 20007 896 inlägg
#3

Ser OK ut, dock bör du ta bort wildcarden... Dom gör så att namn som innehåller samma sträng som finns i sessionen även hämtas.

T.ex.

Session("username") = "bc"

Editera = "SELECT * FROM users WHERE Username = '%" & Session("username") & "%'"
...

Nu kommer namn som t.ex. abc, bcd, osv. att hämtas från databasen då de innehåller strängen bc.

Gör så här istället:

Editera = "SELECT * FROM users WHERE Username = '" & Session("username") & "'"

:)

Red} Lyssna på @nders, han är snabb och har rätt :)

Medlem sedan maj 200152 inlägg
#4

tackar så mycket @nders. Nu funkar det klockers :-)

Medlem sedan dec. 200012 464 inlägg
#5

Editera = "SELECT * FROM users WHERE Username = '" & Session("username") "'"

red: Ojdå.

Medlem sedan maj 200152 inlägg
#6

Är förmodligen så trött i huvet så jag inte ser det, men va är fel i denna kod?

<% '========================================================================================== %>
<% ' Kod för att välja inlägg att redigera %>
<% '========================================================================================== %>
<%

Editera = "SELECT \* FROM users WHERE Username = '" & Session("username") & "' "

RecSet.Open Editera, Connect, adOpenStatic, adLockOptimistic

%\>

Edit your company information!
<form method="POST" action="edit.asp?update=yes">

Username:
<br>
<input type="text" size="30" name="username" value=" <% =RecSet("Username") %>" >

<p> Password:
<br>
<input type="password" size="30" name="password" value=" <% =RecSet("Password") %>" >

<p> Companyname:

<br>
<input type="text" size="30" name="foretagsnamn" value="<% =RecSet("Foretagsnamn") %>" >

<p> Your contactperson:

<br>
<input type="text" size="30" name="kontaktperson" value="<% =RecSet("Kontaktperson") %>" >

<p> E-mail:

<br>
<input type="text" size="30" name="Email">

<p> Presentationtext about company:

<br>
<textarea name="prestext" cols="50" rows="20" value="<% =RecSet("Prestext") %>" > </textarea>
<p>
<input type="Submit" value="Update information">

</form>

<% '====================================================================================== %>
<% ' Formulärskod för att uppdatera inlägg %>
<% '======================================================================================= %>
<% If Request.QueryString("update") = "yes" Then

Updatera = "SELECT \* FROM users "

RecSet.Open Updatera, Connect, adOpenStatic, adLockOptimistic

Dim Datum
Datum = Date 

RecSet("Username") = Request.Form("username")
RecSet("Password") = Request.Form("password")
RecSet("foretagsnamn") = Request.Form("foretagsnamn")
RecSet("kontaktperson") = Request.Form("kontaktperson")
RecSet("email") = Request.Form("email")
RecSet("prestext") = Request.Form("prestext")
RecSet("datum") = Datum

RecSet.Update

RecSet.Close  

Response.Redirect "result.asp?edit=yes" 

%\>

<% End If %>

Får detta felmeddelande:

Feltyp:
ADODB.Recordset (0x800A0E79)
Åtgärden är inte tillåten när objektet är öppet.
/project/edit.asp, line 97

Rad 97 är:
RecSet.Open Updatera, Connect, adOpenStatic, adLockOptimistic

Medlem sedan juni 200032 967 inlägg
#7

Tja, du öppnar RecSet två gånger. Den andra gången är det ju redan öppet.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#8
Editera = "SELECT * FROM users WHERE Username = '" & Session("username") & "' "

RecSet.Open Editera, Connect, adOpenStatic, adLockOptimistic

Det finns íngen close här.

Medlem sedan maj 200152 inlägg
#9

tackar, ser det nu........ska nog sova ett par timmar nu

tack för allt

/henke

258 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)