如何创建事件日历 [英] how to creat an event calender

查看:83
本文介绍了如何创建事件日历的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能帮助我创建一个事件日历,该日历将从数据库中检索日期并在日历上突出显示这些日期,并且当用户将鼠标移到该日期上时,事件会弹出

我在这里有一段代码,但是当我运行它时,它给我一个错误找不到表0"
我不知道这是什么问题.

公共类日历
继承System.Web.UI.Page
受保护的dsHolidays作为数据集

受保护的子Page_Load(以对象的ByBy发件人身份,以System.EventArgs的ByVal e身份)处理Me.Load
Calendar1.VisibleDate = DateTime.Today
FillHolidayDataset()
结束子
受保护的子FillHolidayDataset()
将firstDate设置为新的DateTime(Calendar1.VisibleDate.Year,_
Calendar1.VisibleDate.Month,1)
昏暗的lastDate作为DateTime = GetFirstDayOfNextMonth()
dsHolidays = GetCurrentMonthData(firstDate,lastDate)
结束子
受保护的函数GetFirstDayOfNextMonth()作为DateTime
昏暗的monthNumber,yearNumber作为整数
如果Calendar1.VisibleDate.Month = 12然后
monthNumber = 1
yearNumber = Calendar1.VisibleDate.Year + 1
其他
monthNumber = Calendar1.VisibleDate.Month + 1
yearNumber = Calendar1.VisibleDate.Year
如果结束
将lastDate设置为新的DateTime(yearNumber,monthNumber,1)
返回lastDate

最终功能
函数GetCurrentMonthData(ByVal firstDate作为DateTime,ByVal lastDate作为DateTime)作为DataSet
昏暗的dsMonth作为新数据集
昏暗的cs作为ConnectionStringSettings

cs = ConfigurationManager.ConnectionStrings("ConnectionString1")
Dim connString As String = cs.ConnectionString
昏暗的dbConnection作为新的SqlConnection(connString)
暗淡查询为字符串
query ="SELECT N_date,msg FROM NotCalendar"& _
"WHERE N_date> = @firstDate AND N_date< @lastDate"
将dbCommand变暗为新的SqlCommand(query,dbConnection)
dbCommand.Parameters.Add(新SqlParameter("@ firstDate",firstDate))
dbCommand.Parameters.Add(新SqlParameter("@ lastDate",lastDate))
昏暗的sqlDataAdapter作为新的SqlDataAdapter(dbCommand)
试试
sqlDataAdapter.Fill(dsMonth)
赶上
结束尝试
返回dsMonth
最终功能
受保护的子Calendar1_DayRender(ByVal发送者作为对象,_
ByVal e As System.Web.UI.WebControls.DayRenderEventArgs)_
处理Calendar1.DayRender
将nextDate设置为DateTime
如果不是dsHolidays没什么
对于dsHolidays.Tables(0).Rows中的每个dr作为DataRow
nextDate = CType(dr("N_date"),DateTime)
如果nextDate = e.Day.Date然后
e.Cell.BackColor = System.Drawing.Color.Pink
如果结束
下一个
如果结束
结束子

End Class

Can anyone help I want to create an events calender that will retrieve the dates from the database and highlight those dates on the calender and when a user moves a mouse over that date the event pops up

i have a piece of code here but when i run it, it gives me an eror "Cannot find table 0"
i dnt know what is the problem.

Public Class Calender
Inherits System.Web.UI.Page
Protected dsHolidays As DataSet

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Calendar1.VisibleDate = DateTime.Today
FillHolidayDataset()
End Sub
Protected Sub FillHolidayDataset()
Dim firstDate As New DateTime(Calendar1.VisibleDate.Year, _
Calendar1.VisibleDate.Month, 1)
Dim lastDate As DateTime = GetFirstDayOfNextMonth()
dsHolidays = GetCurrentMonthData(firstDate, lastDate)
End Sub
Protected Function GetFirstDayOfNextMonth() As DateTime
Dim monthNumber, yearNumber As Integer
If Calendar1.VisibleDate.Month = 12 Then
monthNumber = 1
yearNumber = Calendar1.VisibleDate.Year + 1
Else
monthNumber = Calendar1.VisibleDate.Month + 1
yearNumber = Calendar1.VisibleDate.Year
End If
Dim lastDate As New DateTime(yearNumber, monthNumber, 1)
Return lastDate

End Function
Function GetCurrentMonthData(ByVal firstDate As DateTime, ByVal lastDate As DateTime) As DataSet
Dim dsMonth As New DataSet
Dim cs As ConnectionStringSettings

cs = ConfigurationManager.ConnectionStrings("ConnectionString1")
Dim connString As String = cs.ConnectionString
Dim dbConnection As New SqlConnection(connString)
Dim query As String
query = "SELECT N_date,msg FROM NotCalendar" & _
" WHERE N_date >= @firstDate AND N_date < @lastDate"
Dim dbCommand As New SqlCommand(query, dbConnection)
dbCommand.Parameters.Add(New SqlParameter("@firstDate", firstDate))
dbCommand.Parameters.Add(New SqlParameter("@lastDate", lastDate))
Dim sqlDataAdapter As New SqlDataAdapter(dbCommand)
Try
sqlDataAdapter.Fill(dsMonth)
Catch
End Try
Return dsMonth
End Function
Protected Sub Calendar1_DayRender(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) _
Handles Calendar1.DayRender
Dim nextDate As DateTime
If Not dsHolidays Is Nothing Then
For Each dr As DataRow In dsHolidays.Tables(0).Rows
nextDate = CType(dr("N_date"), DateTime)
If nextDate = e.Day.Date Then
e.Cell.BackColor = System.Drawing.Color.Pink
End If
Next
End If
End Sub

End Class

推荐答案

您可能会遇到错误,但是在GetCurrentMonthData中吃了异常.

尝试删除try/catch,或者至少再次引发异常,这样您就可以看到错误消息:

You might be getting an error, but eating the exception in GetCurrentMonthData.

Try remove the try/catch, or at least throw the exception again, so you can see the error message:

Try
    sqlDataAdapter.Fill(dsMonth)
Catch
End Try


这篇关于如何创建事件日历的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆