På sidan default.aspx ska de poster i en tabell som är skickade idag hämtas per automatik (dvs däre messageDate är samma som dagens datum), men det ska även gå att välja att visa tidigare dagars poster.
Just nu har jag en Sub som ser ut så här:
Public Sub getMessages()
objCmd = New SqlCommand("SELECT * FROM m_messages WHERE messageDate>'" & Today & "' ORDER BY messageDate DESC", objConn)
objConn.Open()
objRdr = objCmd.ExecuteReader()
dgMessages.Datasource = objRdr
dgMessages.DataBind()
objRdr.Close()
objConn.Close()
End Sub
Jag tänkte använda en dropdownlist (eller något annat, om det är bättre) för att välja dag.
Välj dag
Idag
Igår (1 dag sedan)
Två dagar sedan
Tre dagar sedan
... osv
Hur ska jag överföra det valet till min sql-fråga på ett bra sätt? Antar att man kan använda antalet dagar och subtrahera på något fint sätt, eller så. Idéer?
Antar att man kan göra det valda antal dagarna till en variabel och sedan stoppa in den variabeln i sqlfrågan och därefter kolla den mot datumet?
Om du lägger in hur många dagar bakåt du vill visa som värde i dropdownlistan, alltså Idag=0, Igår=1 och så vidare, så kan du enkelt dra ifrån det antalet dagar ifrån dagens datum:
objCmd = New SqlCommand("SELECT * FROM m_messages WHERE messageDate>'" & DateTime.Today.AddDays(-Int32.Parse(fldSelectDays.SelectedValue)).ToString() & "' ORDER BY messageDate DESC", objConn)
Tanken är att när sidan laddas ska dagens poster hämtas automatiskt, så jag tänkte så här:
använda en ifsats för att kolla om det finns något val från ddlistan, om inte så ska dagens hämtas, men om det finns något så ska din sql fråga köras i stället. Verkar det vettigt?
Dock så funkar inte min ifsats (föga förvånande kanske :r ). Någon som orkar ta sig en titt?
Default så hämtas inga inlägg alls, vid val med ddl'en så hämtas dock dagens oavsett vad man väljer.
Public Sub getMessages(Source As Object, E As EventArgs)
if Request.Form("ddlSelectDays.SelectedValue") = ""
objCmd = New SqlCommand("SELECT * FROM m_messages WHERE messageDate>'" & Today & "' ORDER BY messageDate DESC", objConn)
objConn.Open()
objRdr = objCmd.ExecuteReader()
dgMessages.Datasource = objRdr
dgMessages.DataBind()
objRdr.Close()
objConn.Close()
else
objCmd = New SqlCommand("SELECT * FROM m_messages WHERE messageDate>'" & DateTime.Today.AddDays(-Int32.Parse(ddlSelectDays.SelectedValue)).ToString() & "' ORDER BY messageDate DESC", objConn)
objConn.Open()
objRdr = objCmd.ExecuteReader()
dgMessages.Datasource = objRdr
dgMessages.DataBind()
objRdr.Close()
objConn.Close()
End if
End Sub
r. /snurrig formulering
129 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17