webForumDet fria alternativet

binda data till en array från oledb

2 svar · 327 visningar · startad av Cale

CaleMedlem sedan mars 200490 inlägg
#1

jag har sökt som en galning och nu är skallen helt tom..

det jag vill är att plocka ut datum ur en databas, dessa datum ska fylla en array för att sedan användas för DayRender så att jag kan byta bakgrundsfärgen på de dagar i en Kalender som det finns data kopplade till.

jag har hittat detta exempel som verkar göra just det förrutom att där lägger man manuellt in data i en array.

jag har hittat förklaringar hur man gör det i asp men jag lyckas inte översätta det till asp.net.

CaleMedlem sedan mars 200490 inlägg
#2

nähä..

men ok, finns det en bättre lösning då?

det jag vill är alltså att man ska kunna se vilka datum i kalendern som det finns data kopplade till (i databasen alltså)..
det här kan ju inte vara första gången nån vill göra det..?

CaleMedlem sedan mars 200490 inlägg
#3

tabellen "event" innehåller bl.a. fälten "event_date" (datum) och "event_long" (beskrivning av händelsen, ja jag vet.. long är inte optimalt som namn men det får duga i detta test)
vissa saker har jag tagit med här som är blockade men det är för att jag ska komma ihåg hur jag gör det sen om det behövs..

jag gjorde såhär:

Dim holidays(12, 31) As String

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

GetData()

End Sub

Private Sub GetData()
Dim strSQL1 As String = "SELECT * FROM event"
Dim dsEvents As New DataSet
Try
Dim myCommand1 As New OleDbCommand(strSQL1, myConnection)
Dim myAdapter1 As New OleDbDataAdapter()
myConnection.Open()
myAdapter1.SelectCommand = myCommand1
myAdapter1.Fill(dsEvents, "event")
Catch ex As Exception
'# Errorhantering, logga felmeddelande !!
lblMessage.Text = ex.Tostring
Finally
myConnection.Close()
End Try

Dim i As Integer
For i = 0 To dsEvents.Tables("event").Rows.Count - 1

Dim myDate As New Date
Dim strMyText As String

myDate = Convert.ToDateTime(dsEvents.Tables("event").Rows(i)("event_date"))
strMyText = dsEvents.Tables("event").Rows(i)("event_long".ToString)

holidays(myDate.Month, myDate.Day) = strMyText
	
Next
End Sub

Sub EventCalendar_DayRender(sender As Object, e As DayRenderEventArgs)
Dim d As CalendarDay
Dim c As TableCell

d = e.Day
c = e.Cell

If d.IsOtherMonth Then
c.Controls.Clear()
Else
Try

Dim Hol As String = holidays(d.Date.Month, d.Date.Day)

If Hol <> "" Then
'c.Controls.Add(New LiteralControl("<br>" + Hol))
c.BackColor = System.Drawing.Color.Gray
'c.BorderStyle = BorderStyle.Solid
End If

Catch exc As Exception
Response.Write(exc.Message())
End Try
End If
End Sub

<asp:Calendar id="EventCalendar" runat="server" OnDayRender="EventCalendar_DayRender"/>
130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)