10. januar 2007 - 22:25Der er
14 kommentarer og 1 løsning
kan ikke sætte en Request.QueryString som er lig med session
Jeg har dette i min default.aspx.vb Partial Class _Default Inherits System.Web.UI.Page
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs) Dim PageID As Integer Session("pageid") = PageID If Request.QueryString("PageIdentity") = "" Then PageID = "1" ElseIf Request.QueryString("PageIdentity") <> "" Then PageID = Request.QueryString("PageIdentity").ToString End If End Sub
End Class
Og så har jeg dette på min default.aspx Dim CommandText As String = "SELECT [myID], [myText] FROM [mainText] WHERE [myID] ='" + Session("pageid") + "'" cmd = New OleDbCommand(CommandText) cmd.Connection = con rdr = cmd.ExecuteReader()
..::Problem::.. Når jeg køre test i VWD2005EE så får jeg denne fejl: Detaljer om undtagelse: System.Data.OleDb.OleDbException: Datatyperne stemmer ikke overens i kriterieudtrykket.
Kildefejl:
Linje 48: cmd = New OleDbCommand(CommandText) Linje 49: cmd.Connection = con Linje 50: rdr = cmd.ExecuteReader() Linje 51: Linje 52: Dim strText As String = ""
omkring linje 50.
..::Ønske::.. Session(pageid) skal være = med PageID som er = med Request.QueryString("PageIdentity").
Til at starte på når man vil gå ind på default.aspx så vil Request.QueryString("PageIdentity") jo være = "" derfor skal Session(pageid) så være = "1". derefter vil PageIdentity så være = med et tal og så er Session(pageid) så = dette fra Request.QueryString("PageIdentity").
Hvilken værdi har Session("pageid") når du kommer til din sql. Jeg kan nemlig ikke se hvor du sætter den.
Hvad med dette:
If Request.QueryString("PageIdentity") = "" Then Session("pageid") = "1" ElseIf Request.QueryString("PageIdentity") <> "" Then Session("pageid") = Request.QueryString("PageIdentity").ToString End If
FLASHIT Hvis Request.QueryString("PageIdentity") = "" så er Session("pageid") = "1"
KALP Det hjalp ikke at fjerne ' og '
Hvis jeg fjerner ' og ' så kommer denne fejl om linje 50 Detaljer om undtagelse: System.Data.OleDb.OleDbException: Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "[SiteMainID] =".
Okay men hvis jeg laver min kode om i default.aspx.vb til: Partial Class _Default Inherits System.Web.UI.Page
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs) If Request.QueryString("PageIdentity") = "" Then Session("pageid") = "1" ElseIf Request.QueryString("PageIdentity") <> "" Then Session("pageid") = Request.QueryString("PageIdentity").ToString End If End Sub
End Class
men gør jeg det og laver en Response.Write(Session("pageid")) på min default.aspx side så udskriver den intet altså Session("pageid") indenholder åbentbart ikke noget og den skulle jo være = 1 når man bare er på default.aspx og Request.QueryString("PageIdentity") er intet. !!
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs) If Request.QueryString("PageIdentity") = "" Then Session["pageid"] = "1" ElseIf Request.QueryString("PageIdentity") <> "" Then Session["pageid"] = Request.QueryString("PageIdentity").ToString End If End Sub
hvis ikke det skal gøres med skarpe []
så skal du nok ikke tjekke på om din query er = "" ,men rettere null !!
Partial Class _Default Inherits System.Web.UI.Page
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs) If Request.QueryString("PageIdentity") = Nothing OrElse Request.QueryString("PageIdentity") = "" Then Session("pageid") = "1" ElseIf Request.QueryString("PageIdentity") <> "" Then Session("pageid") = Request.QueryString("PageIdentity").ToString End If End Sub
jeg kan bare ikke få det til at virke med det session.
Kalp du er mest til C# har jeg fundet ud af, hvordan ville dette se ud i C# !? for så kan jeg conventerer det til VB.
Har prøvet med det du skriver i default.aspx.vb og på min default.aspx har jeg så Response.Write(Session("pageid")) og et SessionParameter DefaultValue="1" Name="SiteMainID" SessionField="pageid"
Når jeg køre mit site i VWD2005EE så viser den selvf. record 1 med linket default.aspx men hvis jeg skriver default.aspx?PageIdentity=2 så viser den bare stadigvæk record 1 og min Response.Write(Session("pageid")) skriver intet i alle tilfælde så session("pageid") er altså af en eller andet grund ikke = noget..
først en sidste ting.. det du oprindeligt lavede skal nok se sådan her ud
Partial Class _Default Inherits System.Web.UI.Page
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs) Dim PageID As Integer If Request.QueryString("PageIdentity") = "" Then Session("pageid") = "1" ElseIf Request.QueryString("PageIdentity") <> "" Then Session("pageid") = Request.QueryString("PageIdentity").ToString End If End Sub End Class
hvis den brokker sig stadig så prøv lige at rette her også Dim CommandText As String = "SELECT [myID], [myText] FROM [mainText] WHERE [myID] =" + Convert.ToInt32(Session("pageid")) + ""
hvis det ikke virker så må du lige fortælle hvilke datatyper det har du har i din db.. og endnu vigtige er at udskrive "CommandText" så vi kan se hvad den indeholder.
Kalp Jeg siger mange tak, jeg har ikke testet det sidste du skrev men kiggede lidt på det du skrev tidligere og kunne se at det manglede en handles me.load så rettede til dette:
Partial Class _Default Inherits System.Web.UI.Page
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load If Request.QueryString("PageIdentity") = Nothing OrElse Request.QueryString("PageIdentity") = "" Then Session("pageid") = "1" ElseIf Request.QueryString("PageIdentity") <> "" Then Session("pageid") = Request.QueryString("PageIdentity").ToString End If End Sub
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.