Avatar billede brian-johansen Nybegynder
09. august 2005 - 17:00 Der er 12 kommentarer og
1 løsning

Dayrender kalender c#

Hej,

Jeg har et problem med min kalender. Jeg kan ikke få den til at skrive værdierne fra en database i cellerne på kalenderen.

Her er koden
private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
{
DataSet ds = new DataSet();
string strDSN=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=";
strDSN+=Server.MapPath("kalender.mdb");
string strSQL = "SELECT * FROM event";
string kal = "Select tid, sted From Event";
OleDbConnection myConn = new OleDbConnection(strDSN);
OleDbDataAdapter myCmd = new OleDbDataAdapter(strSQL, myConn);
OleDbDataAdapter myCmd1 = new OleDbDataAdapter(kal, myConn);
myConn.Open();
myCmd.Fill(ds, "event");
// 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;
e.Cell.Text = kal;
}
}
else
{
e.Cell.Text = "";
}
}

myConn.Close();
}


Er der nogen der kan gennemskue problemet ?

mvh Brian
Avatar billede snepnet Nybegynder
09. august 2005 - 17:19 #1
Jeg mener DateTime.Equals sammenligner på ticks, hvilket nok er lige nyanceret nok til dit brug.... det er vel reelt bare datoen du skal sammenline.
mvh
Avatar billede snepnet Nybegynder
09. august 2005 - 17:20 #2
men sådan lige lidt mere generelt, så hiver du alle event op fra database for hver gang der renderes et dagsfelt i kalenderen.... det er et ret voldsomt overhead du har der.
mvh
Avatar billede snepnet Nybegynder
09. august 2005 - 17:21 #3
(alle eventS fra databaseN :o)
Avatar billede brian-johansen Nybegynder
09. august 2005 - 18:17 #4
okay.. hvordan mener du så det vil være smartes at lave for det skal være sådan man kan se hvad alle dagene indeholder når man åbner kalendersiden

mvh
Avatar billede snepnet Nybegynder
09. august 2005 - 18:35 #5
hvis du slår op i basen hver gang - skal du ikke hente mere end data for den respektive dag.

alternativt kan du slå alle events op én gang, og i det datagrundlag sørge for at kunne søge pr. dato.

et tredie alternativ er denne ;o)
http://www.codeproject.com/aspnet/MellDataCalendar.asp

mvh
Avatar billede brian-johansen Nybegynder
09. august 2005 - 19:51 #6
okay. mange tak jeg kigger lige på det aften.
Avatar billede brian-johansen Nybegynder
09. august 2005 - 21:44 #7
Jeg kan stadig ikke gennemskue hvordan jeg får tekst fra en database og ind i cellen på kalenderen

mvh
Avatar billede brian-johansen Nybegynder
09. august 2005 - 22:34 #8
Okay jeg fat ud af det. Nu har jeg bare det problem at den overskriver datoen, hvordan for jeg den ind ?

e.Cell.Text = "" +  dr["tid"].ToString() + " - " + dr["emne"].ToString();
                           
mvh
Avatar billede snepnet Nybegynder
09. august 2005 - 23:23 #9
du kan f.eks. gøre sådan her :

e.Cell.Controls.Add(new LiteralControl(dr["emne"].ToString()));

mvh
Avatar billede brian-johansen Nybegynder
10. august 2005 - 13:58 #10
OKay. super Mange tak for hjælpen smider du lige et svar ?

Lige et lille tillægs spørgsmål. Hvordan for jeg den på en ny linie, sådan at der står:
Dato
"emne" ?
Avatar billede snepnet Nybegynder
10. august 2005 - 14:00 #11
et stk svar her :o)

du kan indsætte alle de kontroller du har lyst til, og gængs html fungerer som vanligt, så en ny linie kan du få med :

e.Cell.Controls.Add(new LiteralControl("<br>" + dr["emne"].ToString()));

ell.

mvh
Avatar billede brian-johansen Nybegynder
10. august 2005 - 14:01 #12
Kanon mange tak  for hjælpen!
Avatar billede snepnet Nybegynder
10. august 2005 - 16:59 #13
var så lidt :o)
mvh
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