PMedlem sedan jan. 20012 204 inlägg 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 Låter som data inte retuneras till dsLogin.
renholmMedlem sedan apr. 20012 266 inlägg 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 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 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 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 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 parentesen
...As String = "[red][b]([/b][/red]UPDATE tbl...
PMedlem sedan jan. 20012 204 inlägg 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 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 hmm det visste jag inte...
ViktorMedlem sedan aug. 20021 752 inlägg
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
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 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)
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 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