当您选定一个月份时,将获取当前所选月份的日期,此日期范围是基于 Calendar 控件的 VisibleDate 属性定义的,该属性返回当前月的第一个日期。 每次用户导航到一个新的月份时,代码就会读取该月份的假日。 在 DayRender 事件中,代码会将当前呈现的日期与从数据库返回的日期进行比较。 如果有匹配的日期,则用特殊颜色标记这一天。 注意 需要对 Calendar 控件标记添加 OnDayRender 属性,以便使用 DayRender 事件。 例如,代码应类似于下面的示例: <asp:Calendar id="Calendar1" OnDayRender=" Calendar1_DayRender" runat="server" ></asp:Calendar>Protected dsHolidays As DataSet Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As SystemEventArgs) Handles MeLoad If Not IsPostBack Then Calendar1VisibleDate = DateTimeToday FillHolidayDataset() End If End Sub Protected Sub FillHolidayDataset() Dim firstDate As New DateTime(Calendar1VisibleDateYear, _ Calendar1VisibleDateMonth, 1) Dim lastDate As DateTime = GetFirstDayOfNextMonth() dsHolidays = GetCurrentMonthData(firstDate, lastDate) End Sub Protected Function GetFirstDayOfNextMonth() As DateTime Dim monthNumber, yearNumber As Integer If Calendar1VisibleDateMonth = 12 Then monthNumber = 1 yearNumber = Calendar1VisibleDateYear + 1 Else monthNumber = Calendar1VisibleDateMonth + 1 yearNumber = Calendar1VisibleDateYear End If Dim lastDate As New DateTime(yearNumber, monthNumber, 1) Return lastDate End Function Protected Sub Calendar1_VisibleMonthChanged(ByVal sender As Object, _ ByVal e As SystemWebUIWebControlsMonthChangedEventArgs) _ Handles Calendar1VisibleMonthChanged FillHolidayDataset() End Sub Function GetCurrentMonthData(ByVal firstDate As DateTime, _ ByVal lastDate As DateTime) As DataSet Dim dsMonth As New DataSet Dim cs As ConnectionStringSettings cs = ConfigurationManagerConnectionStrings("ConnectionString1") Dim connString As String = csConnectionString Dim dbConnection As New SqlConnection(connString) Dim query As String query = "SELECT HolidayDate FROM Holidays " & _ " WHERE HolidayDate >= @firstDate AND HolidayDate < @lastDate" Dim dbCommand As New SqlCommand(query, dbConnection) dbCommandParametersAdd(New SqlParameter("@firstDate", firstDate)) dbCommandParametersAdd(New SqlParameter("@lastDate", lastDate)) Dim sqlDataAdapter As New SqlDataAdapter(dbCommand) Try sqlDataAdapterFill(dsMonth) Catch End Try Return dsMonth End Function Protected Sub Calendar1_DayRender(ByVal sender As Object, _ ByVal e As SystemWebUIWebControlsDayRenderEventArgs) _ Handles Calendar1DayRender Dim nextDate As DateTime If Not dsHolidays Is Nothing Then For Each dr As DataRow In dsHolidaysTables(0)Rows nextDate = CType(dr("HolidayDate"), DateTime) If nextDate = eDayDate Then eCellBackColor = SystemDrawingColorPink End If Next End If End Subprotected DataSet dsHolidays; protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { Calendar1VisibleDate = DateTimeToday; FillHolidayDataset(); } } protected void FillHolidayDataset() { DateTime firstDate = new DateTime(Calendar1VisibleDateYear, Calendar1VisibleDateMonth, 1); DateTime lastDate = GetFirstDayOfNextMonth(); dsHolidays = GetCurrentMonthData(firstDate, lastDate); } protected DateTime GetFirstDayOfNextMonth() { int monthNumber, yearNumber; if(Calendar1VisibleDateMonth == 12) { monthNumber = 1; yearNumber = Calendar1VisibleDateYear + 1; } else { monthNumber = Calendar1VisibleDateMonth + 1; yearNumber = Calendar1VisibleDateYear; } DateTime lastDate = new DateTime(yearNumber, monthNumber, 1); return lastDate; } protected DataSet GetCurrentMonthData(DateTime firstDate, DateTime lastDate) { DataSet dsMonth = new DataSet(); ConnectionStringSettings cs; cs = ConfigurationManagerConnectionStrings["ConnectionString1"]; String connString = csConnectionString; SqlConnection dbConnection = new SqlConnection(connString); String query; query = "SELECT HolidayDate FROM Holidays " + _ " WHERE HolidayDate >= @firstDate AND HolidayDate < @lastDate"; SqlCommand dbCommand = new SqlCommand(query, dbConnection); dbCommandParametersAdd(new SqlParameter("@firstDate", firstDate)); dbCommandParametersAdd(new SqlParameter("@lastDate", lastDate)); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(dbCommand); try { sqlDataAdapterFill(dsMonth); } catch {} return dsMonth; } protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) { DateTime nextDate; if(dsHolidays != null) { foreach(DataRow dr in dsHolidaysTables[0]Rows) { nextDate = (DateTime) dr["HolidayDate"]; if(nextDate == eDayDate) { eCellBackColor = SystemDrawingColorPink; } } } } protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e) { FillHolidayDataset(); } 此示例基于当前显示的月份的日期生成一个查询。 VisibleDate 属性返回当前月的第一个日期。 (在用户导航到日历中之前,不会设置 VisibleDate 属性,因此在第一次显示该页时,代码会手动设置 VisibleDate 属性。
用DatePicker控件,DatePickerText可以获得选择的日期,数据表设计两个字段(开始日期,结束日期),两个控件的值分别插入即可
PS: DatePickerText = DateTimeTodayToString();可以设置初始化日期为当天
select 姓名,报考日期,年龄 from TABLE where date between CONVERT(nvarchar(30),@起始日期,121) And CONVERT(nvarchar(30),@结束日期,121)
判断原理是先判断两个事件是否合法,在判断txt_date1<xt_date2 就行了
; ——此文章摘自《C#高级编程(第 版)》定价 元 特价 元 购买
在把会议添加到数据库中之前 先修改一下日历的显示 最好用另一种颜色显示登记之前的日期 以防该日期被选中 这要求修改我们在日历中设置日期的方式 以及日期单元格的显示方式
首先是日期选择 有 个地方需要查看会议登记的日期 并修改相应选择 一是在Page_ Load()中设置初始日期时 第二是在用户试图从日历中选择日期时 第三情况是登记一个会议 并设置一个新的日期 以防用户在选择新日期前 在同一天连续登记两个会议 这些都是很常见的情况 也可以创建一个私有方法来执行这个计算 这个方法应接受一个试用日期作为参数 并返回要使用的日期 该日期与试用日期相同 也可以是试用日期之后的某个日期
把这个getFreeDate()方法添加到后台编码文件中 private System DateTime getFreeDate(System DateTime trialDate) { if (eventTable Rows Count > ) { System DateTime testDate; bool trialDateOK = false; while (!trialDateOK) { trialDateOK = true; foreach (System Data DataRow testRow in eventTable Rows) { testDate = (System DateTime)testRow[ EventDate ]; if (testDate Date == trialDate Date) { trialDateOK = false; trialDate = trialDate AddDays( ); } } } } return trialDate; }
这段简单的代码使用在Page_Load()中填充的对象eventTable提取会议数据 首先看看一般情况 没有登记任何会议 此时返回该试用日期 以确认该日期 接着对Event表中的日期进行迭代 把该日期与试用日期比较 如果找到一个匹配 就给试用日期加一天 执行另一次搜索
从DataTable中提取数据是相当简单的 testDate = (System DateTime)testRow[ EventDate ];
把列数据转换为Sytem DateTime 这样会更精确
使用getFreeDate()的第一个地方是在Page_Load()后面 这意味只需对设置SelectedDate属性的代码稍加修改 if (!this IsPostBack) { System DateTime trialDate = System DateTime Now; calendar SelectedDate = getFreeDate(trialDate); this DataBind(); }
lishixinzhi/Article/program/net/201311/14554
<php
if(isset($_GET['add_flag']) ){
require_once '/Settingphp';
try {
$dbm = new DBManager($dsn, $user, $passwd);
$db = $dbm->getDB();
$stt = $db->prepare('INSERT INTO diary(date1,title,content,weather,feeling) VALUES(:date1,:title,:content,:weather,:feeling)');
$stt->bindValue(':date1', $_GET['date1']);
$stt->bindValue(':title', $_GET['title']);
$stt->bindValue(':content', $_GET['content']);
$stt->bindValue(':weather', $_GET['weather']);
$stt->bindValue(':mood', $_GET['mood']);
$stt->execute();
} catch(PDOException $e){
die("エラー: {$e}");
}
$db = null;
$dbm = null;
header('Location: /mainphp');
}
><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 40 Transitional//EN"><html> <head>
<meta >
以上就是关于如何:在 Calendar 控件中显示数据库中的选定日期全部的内容,包括:如何:在 Calendar 控件中显示数据库中的选定日期、asp.net Calendar 控件 我想用两个日历控件的时间为条件,连接数据库,一个为开始日期,另一个为结束日期、用日历控件所得到的2个日期 如何去数据库查询出两个日期之间所有的记录 要包括SQL语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)