webForumDet fria alternativet
Logga in / Bli medlem

response.redirect...

.NET

16 svar · 406 visningar · startad av P

Medlem sedan jan. 20012 204 inlägg
Frågan#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.
Medlem sedan juni 20019 024 inlägg
#2

Låter som data inte retuneras till dsLogin.

Medlem 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.

Medlem 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....

Medlem 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.

Medlem 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
Medlem 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.

Medlem sedan juni 20019 024 inlägg
#8

parentesen

...As String = "[red][b]([/b][/red]UPDATE tbl...
Medlem 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.

Medlem 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

Medlem sedan jan. 20012 204 inlägg
#11

hmm det visste jag inte...

Medlem 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

Medlem 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.

Medlem 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)

Medlem 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.

Medlem 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

Medlem sedan jan. 20012 204 inlägg
#17

jo

257 ms totalt · 4 externa anrop · v20260731065814-full.1b2494f0
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)