18. marts 2004 - 10:48
Der er
11 kommentarer og
1 løsning
Vælg en dato fra kalenderen som skal bruges til søgekriterie
Hej jeg har lavet en aspx side hvor jeg skal vælge en dato på kalenderen (calDato), denne dato bruges til at finde oplysninger i min database, altså ud fra den valgte dato, følgende virker ikke:
SELECT...
FROM...
WHERE ...AND Dato = 'calDato.SelectedDate'"
Hvis jeg hårdtkoder som følgende virker det.
SELECT...
FROM...
WHERE ...AND Dato = '28-02.2004'"
Håber nogen kan hjælpe
18. marts 2004 - 11:00
#2
en dato består som du selv skriver, af tal, ikke af bogstaver som du har brugt i første eksempel.
hvis du gerne vil skifte mellem hardcodede værdier og kode skal gøre sådan her:
"dette er hardcodet"+ dette er kode +" hardcodet igen";
WHERE ...AND Dato = '"+ calDato.SelectedDate +"'"
18. marts 2004 - 13:11
#4
Det virker ikke, her er hele min kode, nu ikke blive forviret over min sql-kode, den virker godt nok i access hvis jeg hardcoder dato.
Kan du se hvad der er galt???
<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
' Insert page code here
private con as OledbConnection ' Forbindelse-objekt til databasen
private cmd as Oledbcommand ' kommando-objekt
private sort as string ' Sortering
private Sub skabConnection()
Dim conStr as string ' Forbindelses-streng til databasen
' Opbyg connectionStr
conStr = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source ="+ Request.PhysicalApplicationPath +"Db\Rideskole.mdb"
' Skab forbindelses-objekt udfra connectionStr
con = New OledbConnection(conStr)
' Skab kommando-objekt og tilknyt til forbindelses-objekt
cmd = New OledbCommand()
cmd.Connection = con
End Sub
Sub Page_Load(sender As Object, e As EventArgs)
if not isPostBack then ' Ved load af siden
Dim dataReader as OledbDataReader ' Datareader objekt
ViewState("sort") = "Tid" ' Starter med sortering efter Dm-nr
skabConnection()
BindDataGrid()
end if
End Sub
Private Sub BindDataGrid()
Dim sort as string
sort = ViewState("sort")
' Opbyg SQL-kommando
cmd.CommandText = "SELECT Distinct K.Tid, U.Medlemsnr, P.Navn, U.Hesteid, H.Hestenavn, U.Udstyrsid, UD.Type, NULL As Traekkerid, NULL As Traekkernavn
FROM Kalender AS K, Undervisning AS U, Medlem AS M, Person AS P, Udstyr AS UD, Hest AS H, Arbejde AS A, Traekker As T
WHERE K.Lektionsnr = U.Lektionsnr AND U.Medlemsnr = M.Medlemsnr AND M.Personid = P.Personid AND U.Udstyrsid = UD.Udstyrsid AND U.Hesteid = H.Hesteid AND Dato = '"+ calDato.SelectedDate +"' AND K.Lektionsnr NOT IN(select Arbejde.Lektionsnr FROM Kalender, Arbejde, Undervisning, Udstyr WHERE Kalender.Lektionsnr = Arbejde.Lektionsnr)
UNION SELECT K.Tid, U.Medlemsnr, P.Navn, U.Hesteid, H.Hestenavn, U.Udstyrsid, UD.Type, A.Traekkerid, T.Traekkernavn
FROM Kalender AS K, Undervisning AS U, Medlem AS M, Person AS P, Udstyr AS UD, Hest AS H, Arbejde AS A, Traekker As T
WHERE U.Medlemsnr=M.Medlemsnr AND K.Lektionsnr=U.Lektionsnr AND K.Lektionsnr=A.Lektionsnr AND M.Personid=P.Personid AND U.Udstyrsid=UD.Udstyrsid AND U.Hesteid=H.Hesteid AND A.Traekkerid = T.Traekkerid AND Dato = '"+ calDato.SelectedDate +"'"
con.Open() ' Åben forbindelsen til databasen
dgrDagplan.DataSource = cmd.ExecuteReader() ' Udfør forespørgsel
dgrDagplan.DataBind() ' Knyt resultset til datagrid
con.Close() ' Luk forbindelsen
End Sub
22. marts 2004 - 23:04
#10
Det skal være (hvis jeg forstår noget!):
SELECT...
FROM...
WHERE ...AND Dato = '" & calDato.SelectedDate.ToString("yyyy-MM-dd") & "'"
På SQL serveren vil dato strenge altid blive forstået korrekt, hvis man bruger det ovenstående format.
29. marts 2004 - 20:48
#12
Jeg kan ikke få noget af det til at virke, når jeg gemmer en dato i min database bliver den gemt som teks uden "-"-tegn f.eks. 29032004 altså 29 marts 2004, nogen der har nogle forslag???