Avatar billede manhunter Nybegynder
23. juni 2005 - 17:18 Der er 6 kommentarer

Betingelse virker ikke i SQL sætning

Hey, sidder og koder en hjemmeside og er støt ind i et problem, forstår ikke hvorfor det ikke virker. Det er der her som ikke virker:

SQL = "SELECT Fornavn FROM brugere where Fornavn = '" & txtsletbruger & "'"
            rs.Open SQL, conn
           
            response.write SQL
                       
            if not rs.eof then
                navn = rs.fields("Fornavn")
            if navn = "" then
                    response.write "Der blev ikke fundet nogen brugere med navnet '"& txtsletbruger &"'"
                    Else
                    response.write "Brugeren er blevet slettet!"


Som er en del af den her kode :


<%
if session("login") = "Henrik" Then
   
   
    if     Request.querystring("id") = 1 then
               
    dim txtsletbruger
    dim navn
    txtsletbruger = Request.form("txtsletbruger")
   
            set conn=Server.CreateObject("ADODB.Connection")
            conn.Provider="Microsoft.Jet.OLEDB.4.0"
            conn.Open server.MapPath("CarTraders.mdb")
   
        if txtsletbruger = "" Then
            response.write "Du skal skrive et navn!"
        Else
            set rs=Server.CreateObject("ADODB.recordset")
            SQL = "DELETE from Brugere where Fornavn = '" & txtsletbruger & "'"
           
            conn.execute (SQL)
           
            SQL = "SELECT Fornavn FROM brugere where Fornavn = '" & txtsletbruger & "'"
            rs.Open SQL, conn
           
            response.write SQL
                       
            if not rs.eof then
                navn = rs.fields("Fornavn")
            if navn = "" then
                    response.write "Der blev ikke fundet nogen brugere med navnet '"& txtsletbruger &"'"
                    Else
                    response.write "Brugeren er blevet slettet!"
               
                end if
            end if
        end if
    end if
%>

<table border="0" cellpadding="6">
    <tr>
        <td>
            <form name="frmslet" method="post" action="Administration.asp?id=1">
           
            <input type="text" name="txtsletbruger">
        </td>
            <td>
            <input type="submit" name="cmdsletbruger" value="Slet Bruger">
            </td>
    </tr>
   
</table>
</form>
   
   
<%
Else
    response.Write "Der kræves administrative rettigheder for at kommer herind !"
End if
%>

Håber godt nok i kan hjælpe !
Avatar billede softspot Forsker
23. juni 2005 - 22:43 #1
Hvad sker der? Får du nogen fejl eller giver den ikke det ønskede resultat eller hvad er der galt...?
Avatar billede softspot Forsker
23. juni 2005 - 23:02 #2
Hvis det er fordi den ikke sletter det navn du skriver, kan det være fordi du benytter lighedstegn til at identificere den række i databasen der skal slettes (dvs. "...Fornavn = '" & txtSletBruger & "'"). Det kan være du enten skal benytte LIKE (dvs. "...Fornavn LIKE '" & txtSletBruger & "'") eller LCase (dvs. "...LCase(Fornavn) = '" & LCase(txtSletBruger) & "'" - jeg tror dog kun denne fungerer ordentlig i Access).
Avatar billede inglenook Praktikant
23. juni 2005 - 23:19 #3
Du sletter jo brugeren INDEN du tester om brugeren faktisk findes......
Flyt din SQL til at slette ned EFTER du har testet.
Avatar billede softspot Forsker
23. juni 2005 - 23:27 #4
Den fangede jeg slet ikke, men ja naturligvis! Det er altså ikke altid nok med syntaktisk check... nogle gange skal man også checke semantik... :D
Avatar billede softspot Forsker
23. juni 2005 - 23:31 #5
...men på den anden side, så kunne det sidste SELECT være en test af om brugeren rent faktisk blev slettet og det tilfælde, så er det vel snarere den efterfølgende if-sætning der ikke er korrekt...?

Den skulle vel i så fald se nogenlunde således ud:

if not rs.eof then
  response.write "Brugeren blev ikke slettet. Forsøg igen eller kontakt administrator"
else
  response.write "Brugeren er nu slettet"
end if
Avatar billede softspot Forsker
23. juni 2005 - 23:32 #6
...og så skal forbindelsen naturligvis lukkes ordentlig inden side afsluttes ;)
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