Avatar billede kalle_mod Nybegynder
08. august 2005 - 17:55 Der er 11 kommentarer og
2 løsninger

Tjekke om der er records der matcher sql forespørgslen

Hejsa Eksperter!

Jeg er ved at gå fra asp til asp.net og vil i den forbindelse lave et login-system...

Nu er jeg så løbet ind i det problem at jeg ikke aner ret meget om asp.net andet end det jeg har læst på html.dk og w3schools.com, derfor har jeg aldrig set nogen måde at gøre følgende(asp-kode) i asp.net:

sql="blabla forespørgsel"
set rs = conn.execute(sql)

if not rs.eof then
'sæt de nødvendige sessions
'redirect til forside.asp(x)
else
'redirect til login.asp(x)
end if

den vigtige del er if-sætningen, åbningen af databasen og hentningen af data med sql-forespørgslen har jeg på plads!

På forhånd tak
Kalle
Avatar billede kalle_mod Nybegynder
08. august 2005 - 17:59 #1
hov undskylder lige placeringen, den skulle nok have været under script->asp.net, men så først den kategori nu :(

Kalle
Avatar billede arne_v Ekspert
08. august 2005 - 18:03 #2
SqlCommand sel = new SqlCommand(sqlstmt, con);
SqlDataReader rdr = sel.ExecuteReader();
if(rdr.Read())
{
  // der var noget
}
else
{
  // der var ikke noget
}
Avatar billede kalle_mod Nybegynder
08. august 2005 - 18:12 #3
jeg arbejder i vb.net, men prøver da lige med den dertilhørende tegnsætning(mht. (,{ og //)

Kalle
Avatar billede arne_v Ekspert
08. august 2005 - 18:19 #4
Dim sel As SqlCommand = New SqlCommand(sqlstmt, con)
Dim rdr As SqlDataReader = sel.ExecuteReader()
If rdr.Read() Then
  ' der var noget
Else
  ' der var ikke noget
End If
Avatar billede kalle_mod Nybegynder
08. august 2005 - 18:19 #5
jeg får følgende fejl:

Der er ikke angivet nogen værdi for en eller flere krævede parametre.
Beskrivelse: Der opstod en ikke-afviklet undtagelse under udførelse af den aktuelle webanmodning. Se staksporingen for at få yderligere oplysninger om fejlen, og hvor den kom fra i koden.

Detaljer om undtagelse: System.Data.OleDb.OleDbException: Der er ikke angivet nogen værdi for en eller flere krævede parametre.

Kildefejl:

Linje 10:    sql="select * from login where brugernavn='" & txtbruger.text & "' and password='" & txtpass.text & "'"
Linje 11:    dbcomm = new OleDBCommand(sql, dbconn)
Linje 12:    dbread = dbcomm.executeReader()
Linje 13:   
Linje 14:    if dbread.read then

hele sub'en ser sådan her ud:

Sub CustomValidator1_ServerValidate(sender As Object, e As ServerValidateEventArgs)

    dim dbconn, dbcomm, sql, dbread
    dbconn = new OleDBConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=" & server.mappath("login.mdb"))
    dbconn.open()
    sql="select * from login where brugernavn='" & txtbruger.text & "' and password='" & txtpass.text & "'"
    dbcomm = new OleDBCommand(sql, dbconn)
    dbread = dbcomm.executeReader()

    if dbread.read then

    e.IsValid = true
    lbltest.text ="Logget ind"

    session("bruger") = dbread("brugernavn")
    session("level") = dbread("lvl")
    session("idnummer") = dbread("idnummer")

    sql="update login set sidstelogin=#" & datetime.now & "#, online='ja'"
    dbcomm = new OleDBCommand(sql, dbconn)
    dbcomm.executeNonQuery()

    else
    e.IsValid = false
    lbltest.text = "IKKE logget ind"
    end if

    dbread.close()
    dbcomm.close()


    End Sub

Hvad er fejlen?

Kalle
Avatar billede arne_v Ekspert
08. august 2005 - 18:26 #6
godt spørgsmål

jeg plejer ar have

User Id=admin;Password=";

i min connection string til Access
Avatar billede kalle_mod Nybegynder
08. august 2005 - 18:34 #7
hmm det har jeg nu aldrig haft problemer med, kan det være fordi jeg ikke havde () efter dbread.read ?

men den melder jo fejl i linie 12 så mon det er fordi jeg ikke får et record med ud?

Kalle
Avatar billede a1a1 Novice
08. august 2005 - 18:49 #8
password er vist et reserveret ord i access, prøv med:
sql="select * from login where brugernavn='" & txtbruger.text & "' and [password]='" & txtpass.text & "'"
Avatar billede arne_v Ekspert
08. august 2005 - 18:53 #9
det kunne sagtens være det
Avatar billede kalle_mod Nybegynder
08. august 2005 - 19:03 #10
hehe ja min fejl, feltet hed også kode, netop fordi jeg ved password er reserveret :P dum dum fejl...

Hvis i gider ligge et svar hver så får i lige nogle point :)

Kalle
Avatar billede a1a1 Novice
08. august 2005 - 19:06 #11
ja hvis sql'en er med forkerte felter så kommer man ikke langt
;o)
Avatar billede arne_v Ekspert
08. august 2005 - 19:20 #12
.
Avatar billede kalle_mod Nybegynder
08. august 2005 - 19:28 #13
Giver arne 40 da han løste mit oprindelige problem og a1 20 da han løste fejlen i min kode, håber det er i orden med jer ;)

Kalle
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