Avatar billede peanut2000 Nybegynder
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
Avatar billede peanut2000 Nybegynder
18. marts 2004 - 10:50 #1
"-tegn skal selvf ikke være der til slut på mine where setninger
Avatar billede burningice Nybegynder
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 +"'"
Avatar billede master_fatman Nybegynder
18. marts 2004 - 11:16 #3
:-)
Avatar billede peanut2000 Nybegynder
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
Avatar billede burningice Nybegynder
18. marts 2004 - 13:29 #5
kan være du skal bruge calDato.SelectedDate.ToLongDateString()... prøv dig lidt frem
Avatar billede jepsen999 Nybegynder
18. marts 2004 - 17:09 #6
jeg har brugt date.ToString(). Datoen var godt nok indsat som en IDbParameter, men prøv om det ikke virker...
Avatar billede peanut2000 Nybegynder
18. marts 2004 - 18:29 #7
Det virker ikke nogle af delene
Avatar billede burningice Nybegynder
19. marts 2004 - 12:12 #8
må jeg se din genererede sql-streng?
Avatar billede peanut2000 Nybegynder
22. marts 2004 - 09:15 #9
den kan du jo faktisk se for oven i koden
Avatar billede bechmann Nybegynder
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.
Avatar billede terry Ekspert
27. marts 2004 - 10:11 #11
peanut>hiw about closing some of your questions?
http://www.eksperten.dk/spm/477511
Avatar billede peanut2000 Nybegynder
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???
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester