webForumDet fria alternativet

response.redirect...

16 svar · 404 visningar · startad av P

PMedlem sedan jan. 20012 204 inlägg
#1

I mitt affärslager har jag denna kod...

If dsLogin.Tables(0).Rows.Count = 1 Then
        ' Inloggningen lyckades
         'sätter lite sessioner
                HttpContext.Current.Response.Redirect("inloggning.aspx?value=yes")
            
            Else
                
                HttpContext.Current.Response.Redirect("inloggning.aspx?value=error")
            End If

redirected fungerar utmärkt efter else men inte innan.... då får jag följande felmeddelande

Specified cast is not valid. 
Description: An unhandled exception occurred during the execution of the current web request. 
Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidCastException: Specified cast is not valid.
PaceMedlem sedan juni 20019 024 inlägg
#2

Låter som data inte retuneras till dsLogin.

renholmMedlem sedan apr. 20012 266 inlägg
#3

Jag vet inte om jag tycker det är så speciellt bra att köra redirections i affärslagret, ett affärslager är väl mer till för funktion och dyl. som ska fungera på fler ställen än på webben.

Sedan till ditt problem, efter du inte har angivit vilken rad exception sker på är det svårt att säga vad som är fel.

PMedlem sedan jan. 20012 204 inlägg
#4

jo du har rätt. Gjorde om koden:

Sub Logga_In(sender As Object, e As EventArgs)
Dim value as String = dbCMS.Login(tbUsername.Text , tbPassword.Text, 1)
    If value = "yes"
        Response.Redirect("lala.aspx")
    Else
        lblMess.Text = "Status: Inloggningen misslyckades "
    End If
End Sub

jag får samma felmeddelade som ovan på raden Dim value as String = dbCMS....

Ska kolla igenom det mera noggrant senare idag....

renholmMedlem sedan apr. 20012 266 inlägg
#5

ok, och vad retunerar funktionen Login då? Ibland då databas värden är null så är det av typen System.DbNull.

PMedlem sedan jan. 20012 204 inlägg
#6

lyckades hitta felet... det låg i att jag hade glömt skriva om lite kod från "mssql till mysql" men nu får jag ett annat irreterande fel:

        Public Function LoginUpdate(Username as String, SysId as Integer)
        Dim Datum as Date = DateTime.Now()
        Dim strSql As String = "(UPDATE tbl_pplats_users SET lastlogin = '"& Datum &"' WHERE username = '" & Username & "' AND sys_id = '" & SysId & "')"
        RunNonQuery(strSql)
        End Function
ERROR [42000] [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE tbl_pplats_users SET lastlogin = '2003-01-10 16:42:56' W
edebroMedlem sedan aug. 2001261 inlägg
#7

Säker att databaskolumnen sys_id är en sträng. Det låter mer som en int eller dylikt.

Om det är ett tal (int) så måste du ta bort citationstecknen.

PaceMedlem sedan juni 20019 024 inlägg
#8

parentesen

...As String = "[red][b]([/b][/red]UPDATE tbl...
PMedlem sedan jan. 20012 204 inlägg
#9

sys_id är en integer ska man inte använda '"& sys_id &"' då eller?

Det fungerade tydligen om man tog bort parentesen. Konstigt har använt det i SELECT satser i mysql och mssql tidigare och update satser i mssql.

ViktorMedlem sedan aug. 20021 752 inlägg
#10

För en integer (och övriga tal) använder du inte ' det använder du "bara" på strängar.

/Viktor

PMedlem sedan jan. 20012 204 inlägg
#11

hmm det visste jag inte...

ViktorMedlem sedan aug. 20021 752 inlägg
#12

P skrev:

hmm det visste jag inte...

"men lol P" ;)

Här kan du läsa lite mer om det (mycket lite...) http://www.w3schools.com/sql/sql_where.asp.

/Viktor

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#13

Håller med renholm. Saker som redirect och liknande ska generellt inte finnas i affärslagret. Det ska man ha i presentationslagret.

PMedlem sedan jan. 20012 204 inlägg
#14

Det fungerar med '' i alla fall!

Varför ska det inte ligga i affärslagret?

(I cs är jag bäst i alla fall :e)

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#15

Affärslagret ska inte vara beroende av att det är en webbsida det anropas ifrån.
Samma funktion som man använder från en webbsida ska man kunna använda från ett program. :)

Annars tappar man lite vitsen med att ha datalager, affärslager och presentationslager.

ViktorMedlem sedan aug. 20021 752 inlägg
#16

Jag håller med om att det inte ska vara med i affärslagret, i affärslagret ska man bara sköta beräkningar och uppgifter som inte har direkt med webben att göra.
Funktionen ska, tycker jag, retunera true om det gick bra, false om det gick dåligt och i ditt presentations lager där du anroppar denna funktion läser du av vad du fick för retur och redirectar dit du vill.

/Viktor

PMedlem sedan jan. 20012 204 inlägg
#17

jo

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)