se non sei ancora riuscito di invio il mio codice che ho scopiazzato qua e là forse non serve tutto, ed è da sistemare (cosa che devo ancora fare) però ti da qualche indicazione
Il mio colora di rosso tutte le scadenze
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Calendar1.VisibleDate = DateTime.Today
FillScadenzeDataset()
End If
End Sub
Protected Sub FillScadenzeDataset() 'deve riempire il dataset con i dati
Dim firstDate As New DateTime(Calendar1.VisibleDate.Year, _
Calendar1.VisibleDate.Month, 1) 'ottenere la prima data è facile però in formato americano
'firstDate = formatDateTimeDb(firstDate) 'converto la data nel formato italiano
Dim lastDate As DateTime = GetFirstDayOfNextMonth() 'ottenere la prima data del mese successivo bisogna fare qualche lavoro
'lastDate = formatDateTimeDb(lastDate) 'converto la data nel formato italiano
dsScadenze = GetCurrentMonthData(firstDate, lastDate) 'ottiene il dataset
End Sub
Protected Function GetFirstDayOfNextMonth() As DateTime 'la prima data del prossimo mese
Dim monthNumber, yearNumber As Integer
If Calendar1.VisibleDate.Month = 12 Then 'se siamo a dicembra allora il mese è gennaio
monthNumber = 1
yearNumber = Calendar1.VisibleDate.Year + 1
Else 'altrimenti siamo a mese corrente +1
monthNumber = Calendar1.VisibleDate.Month + 1
yearNumber = Calendar1.VisibleDate.Year
End If
Dim lastDate As New DateTime(yearNumber, monthNumber, 1) 'datetime compone la dat ma in formato americano
Return lastDate
End Function
Protected Sub Calendar1_VisibleMonthChanged(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MonthChangedEventArgs) _
Handles Calendar1.VisibleMonthChanged
FillScadenzeDataset()
End Sub
Function GetCurrentMonthData(ByVal firstDate As DateTime, ByVal lastDate As DateTime) As DataTable
Dim MyConnection As OleDbConnection
Dim MyCommand As OleDbCommand
'Collegamento con il database
MyConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLED B.4.0;Data Source=C:\Documents and Settings\06109\Desktop\Antincendio.mdb")
'creazione del comando
MyCommand = New OleDbCommand()
MyCommand.CommandText = " SELECT t9.id_verifica, t9.id_presidio, t9.descrizione, t9.ultimoControllo, t9.cadenza, (DateAdd(" & Chr(34) & "m" & Chr(34) & ",[t9]![cadenza],[t9]![ultimoControllo])) AS prossimoControllo FROM t9;" ' WHERE ((((DateAdd(" & Chr(34) & "m" & Chr(34) & ",[t9]![cadenza],[t9]![ultimoControllo])))>@firstDate And ((DateAdd(" & Chr(34) & "m" & Chr(34) & ",[t9]![cadenza],[t9]![ultimoControllo])))<@lastDate));"
MyCommand.CommandType = CommandType.Text
MyCommand.Connection = MyConnection
'MyCommand.Parameters.AddWithValue("@firstDate", firstDate)
'MyCommand.Parameters.AddWithValue("@lastDate", lastDate)
Dim myAdapter As New OleDbDataAdapter(MyCommand) 'crea un dataAdapter
Dim dsMonth As DataTable = New DataTable()
myAdapter.SelectCommand = MyCommand
Try
myAdapter.Fill(dsMonth) 'riempie il dataSet con i dati ottenuti dalla query
Catch
End Try
Return dsMonth 'ritorna il datatset

Rispondi quotando