---
title: "kalender...."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/54276-kalender"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "icaaq"
published: "2002-09-25T18:46:07.000Z"
updated: "2002-09-28T06:30:41.000Z"
replies: 10
views: 365
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/54276-kalender"
---

# kalender....

## #1 — icaaq, 2002-09-25T18:46Z

Jag skulle vilja ha lite ideér hur jag ska lösa detta på bästa sätt.

Jag ska loopa fram alla dagar i en kalender och har en tabell i en databas med **datum** och **event**. när jag listar ut alla dagar vill jag även lista ut om jag skrivit något för just den dagen.....ni fattar säkert :)

Jag tänkte att jag skulle köra ner allt i en array och sen kolla om datumet finns i den.

Är det ett bra sätt skulle jag hemskt gärna vilja se ett exempel på hur man fyller en array med data från en tabell, eller om nån har ett bättre sätt :)

mvh icaaq

Permalänk: https://www.webforum.nu/p/54276

## #2 — renholm, 2002-09-25T20:49Z

Är det en "hemmagjord" kalender? eller \<asp:calendar\> ?

Permalänk: https://www.webforum.nu/p/797055

## #3 — icaaq, 2002-09-26T04:06Z

"hemmagjord" ;)

Permalänk: https://www.webforum.nu/p/797141

## #4 — icaaq, 2002-09-26T09:53Z

Jag listar alla dagar så här nu:

```
[red]
for (int j=0; j<numrows; j++)
{            
	TableRow r = new TableRow();
    
	TableCell c = new TableCell();
	c.Controls.Add(new LiteralControl(dteDay.Date.ToString("dd", cultSwe)));
	c.ApplyStyle(sDatum);
	c.ColumnSpan = 2;
	r.Cells.Add(c);
	TableCell d = new TableCell();

	tSkala.Rows.Add(r);
	tSkala.ApplyStyle(sBig);
	dteDay = dteDay.AddDays(1);
}[/red]
```

och jag tycker att det verkar lite *overkill* att anropa databasen på varje ny rad.....

Permalänk: https://www.webforum.nu/p/797294

## #5 — renholm, 2002-09-26T16:33Z

Hämta från databasen engång och spara det i en DataSet.

Permalänk: https://www.webforum.nu/p/797846

## #6 — icaaq, 2002-09-27T06:47Z

ok...nu har jag sparat ner tabellen t_datum i ett dataset.
Men hur loopar jag igenom det, jag skulle gissa på en do while() slinga men jag vet inte riktigt hur  :OO

Schyst om nån skulle vilja dela med sig sina kunskaper :)

mvh icaaq

Permalänk: https://www.webforum.nu/p/798312

## #7 — juventus1, 2002-09-27T10:23Z

Sa har kan du skriva loopen iaf.

```
for (int i = 0; i < ds.Table["t_Datum"].Rows.Count:i++) 
{}
```

Sedan far du kolla om det finns ett event for dagen och i sa fall skriva ut det.

Permalänk: https://www.webforum.nu/p/801226

## #8 — icaaq, 2002-09-27T18:08Z

Så här loopar jag igenom det nu

```
[red]
for (int j=0; j<numrows; j++)
			{   
				Boolean blnOK = false;
				int s = 0;
				for(int i=0; i < myDs.Tables["datum"].Rows.Count - 1; i++) 
				{ 
					if(myDs.Tables["datum"].Rows[i]["datum_datum"].Equals(dteDay)) 
					{ 
						blnOK = true;
						s = i;
					}
				}
				if (blnOK == true)
				{
					int intFeel = Convert.ToInt32(myDs.Tables["datum"].Rows[s]["datum_feel"]);
					HtmlImage barImage = new HtmlImage();
					barImage.Src = "/WebApplication1/images/bar.jpg";
					barImage.Width = intFeel;
					barImage.Height = 16;

					Table barTable = new Table();
					TableRow barRow = new TableRow();
					TableCell barCell = new TableCell();
					barCell.Controls.Add(barImage);
					barRow.Cells.Add(barCell);
					barTable.Rows.Add(barRow);
					barTable.CellPadding = 0;
					barTable.CellSpacing = 0;

					TableRow r = new TableRow();                
					TableCell c = new TableCell();
					c.Controls.Add(barTable);
					c.ApplyStyle(sLank);
					r.Cells.Add(c);
					tSkala.Rows.Add(r);
				}
				else
				{					
					TableRow r1 = new TableRow();                
					TableCell c1 = new TableCell();
					c1.Controls.Add(new LiteralControl("&nbsp;"));
					c1.ApplyStyle(sLank);
					r1.Cells.Add(c1);
					tSkala.Rows.Add(r1);
				}			
				
				dteDay = dteDay.AddDays(1);
				tSkala.ApplyStyle(sBig);
			}
}[/red]
```

Permalänk: https://www.webforum.nu/p/801645

## #9 — juventus1, 2002-09-27T20:15Z

Är det något fel på den koden?

Permalänk: https://www.webforum.nu/p/801726

## #10 — Grynet, 2002-09-27T22:05Z

Tjipp, råkade ha tråkigt så jag pulade om din kod lite så att den enligt mitt tycke blev mer logisk

```
for (int j=0; j<numrows; j++){   
	TableRow row = new TableRow();                
	TableCell cell = new TableCell();
	Control control = new LiteralControl(" ");	//låt detta vara behållaren för kontrollen vi ska lägga till
	
	for(int i=0; i < myDs.Tables["datum"].Rows.Count - 1; i++) { 
		if(myDs.Tables["datum"].Rows[i]["datum_datum"].Equals(dteDay)) { 
			HtmlImage barImage = new HtmlImage();
			barImage.Src = "/WebApplication1/images/bar.jpg";
			barImage.Width = Convert.ToInt32(myDs.Tables["datum"].Rows[i]["datum_feel"]);
			barImage.Height = 16;

			Table barTable = new Table();
			TableRow barRow = new TableRow();
			TableCell barCell = new TableCell();
			barCell.Controls.Add(barImage);
			barRow.Cells.Add(barCell);
			barTable.Rows.Add(barRow);
			barTable.CellPadding = 0;
			barTable.CellSpacing = 0;

			control = barTable; //ändra innehållet i contriol till vår table
			break; //vi har funnit den och kan sluta loopa
		}
	}

	cell.Controls.Add(control);  //addera kontrollen till huvud tabellen

	cell.ApplyStyle(sLank);
	row.Cells.Add(cell);
	tSkala.Rows.Add(row);			

	dteDay = dteDay.AddDays(1);
	tSkala.ApplyStyle(sBig);
}
```

Var lite för skojs skull bara :)

En sak till det känns som dina två loopar är lite onödiga, jag vet inte hur resten av din kod ser ut men det känns som om du ska bara behöva en for loop. Där du loopar igenom alla fält i din databas tabell och kopplar dessa till rätt kolumn i din huvud tabell (utseendet). Denna antar jag har en nyckel som är ett datum (eller ett datum minus ett annat..dvs 0 och uppåt till numrows). Så i din loop kollar du om datumet i tabellen minus ditt grunddatum hamnar inom talen för din utseende tabellen och så sätter du fint in värderna där.

Kanske lite snurrigt förklarat men vad räknar ni med 24.00 en fredag ;)

Permalänk: https://www.webforum.nu/p/801788

## #11 — icaaq, 2002-09-28T06:30Z

> **juventus1 skrev:**
>
> Är det något fel på den koden?

Nej den funkar nu :)

Grynet:
Tack för att du tog dig tid att göra koden lite *mer logisk*! :)
Jag är som sagt bara i början av min OOP karriär så att jag tänker säkert inte jättelogiskt ;)

Nu är det stora problemet hur jag ska utforma databasen ( <http://www.webforum.nu/showthread.php?s=&threadid=53387> )

Efter att jag fixat det blir det att göra koden mer logisk :)

mvh icaaq

Permalänk: https://www.webforum.nu/p/801850

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/54276-kalender
