14. maj 2005 - 12:25Der er
10 kommentarer og 1 løsning
ASP kalender
Hej,
Jeg er ved at lave en kalender men jeg kan ikke få helt til at virke.
Jeg har lavet det sådan at den henter de forskellige datoer fra en accesdatabase. Problemet er bare at når jeg trykker på en dato så skriver den bare at der ikke er nogen aftaler den dag, selvom den har fundet dem i databasen.
void Calendar1_SelectionChanged(object sender, EventArgs e) { string date = Calendar1.SelectedDate.ToShortDateString(); string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Websites\\website6\\data\\kalender.mdb"; string strSQL = "SELECT * FROM events"; OleDbConnection myConn = new OleDbConnection(strDSN); OleDbDataAdapter myCmd = new OleDbDataAdapter(strSQL, myConn); myConn.Open(); myCmd = new OleDbDataAdapter("Select * from events where dato=" + date + "", myConn); dsSelDate = new DataSet(); myCmd.Fill(dsSelDate,"Events"); if (dsSelDate.Tables[0].Rows.Count == 0) { GridView1.Visible = false; Label1.Text = "ingen aftaler idag"; } else { GridView1.Visible = true; GridView1.DataSource = dsSelDate; GridView1.DataBind(); } myConn.Close(); }
Er der nogen der har nogle ider om hvad der går galt?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
jeg kan ikke rigtig se hvordan den skulle skrive "ingen aftaler idag", med mindre du ikke har nogen rækker i tabellen.... hvordan konstaterer du at du rent faktisk har fået noget op fra basen ?
prøv at putte ' omkring din dato : myCmd = new OleDbDataAdapter("Select * from events where dato='" + date + "'", myConn);
Jeg bruger en dayrender længere oppe den lyder sådan void Calendar1_DayRender(object sender, DayRenderEventArgs e) { string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Websites\\website6\\data\\kalender.mdb"; string strSQL = "SELECT * FROM events"; OleDbConnection myConn = new OleDbConnection(strDSN); OleDbDataAdapter myCmd = new OleDbDataAdapter(strSQL, myConn); myConn.Open(); myCmd.Fill(ds, "events"); // If the month is CurrentMonth if (!e.Day.IsOtherMonth) { foreach (DataRow dr in ds.Tables[0].Rows) { if ((dr["dato"].ToString() != DBNull.Value.ToString())) { DateTime dtEvent = (DateTime)dr["dato"]; if (dtEvent.Equals(e.Day.Date)) { e.Cell.BackColor = System.Drawing.Color.DarkOrange; } } else { e.Cell.Text = ""; }
Det virker ikke, jeg får en "Data type mis in criteria expression" Jeg tror det er fordi det ene er til en sql database og det andet er til en oledb database, det i hvertfald sådan jeg har forstået det sådan rundt omkring på nettet :)
i den ene henter du alle datoer, og i den anden udvælger du på den specifikke dato - og du får tilsyneladende sendt en forespørgsel ned der ikke returnerer dig noget (ellers ville antallet af rækker ikke være 0). der er noget galt med din anden sql - prøv at skriv den ud, og fyr den direkte af mod basen.
jeg er ikke sikker på hvad du mener med forskellen på den ene og den andend database... så vidt jeg kan se går begge dine forespørgsler til en access-database du har liggende.
myCmd = new OleDbDataAdapter("Select * from events where dato=" + date + "", myConn);
og gør sådan her istedet :
string sql = "Select * from events where dato=" + date; Response.Write(sq); myCmd = new OleDbDataAdapter(sql, myConn);
så får du øverst på siden din forespørgsel ud, og så åbner du bare access, og skriver samme forespørgsel ind... så kan du se om du får noget tilbage - og rette til hvis det ikke er tilfældet. når du har fundet det rigtige format, sørger du får at overholdet det i koden.
det var så lidt :o) # lader til at sikre at det bliver tolket som et datokriterie. mvh
Synes godt om
Ny brugerNybegynder
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.