DROP DIND DIND BIND在DROP DOWN LIST中

时间:2013-08-30 04:46:48

标签: asp.net

这是查询,我可以获得两个日期之间的所有记录。

SELECT * FROM tblBooking WHERE  
 Convert(datetime,'2013-08-20 04:00:00.000')  --start date  
    BETWEEN FromDateWithStartTime AND ToDateWithEndTime  
    OR Convert(datetime,'2013-08-30 04:00:00.000') --endDate  
    BETWEEN FromDateWithStartTime AND ToDateWithEndTime  
    or FromDateWithStartTime BETWEEN Convert(datetime,'2013-08-20 04:00:00.000') --startdate  
     AND Convert(datetime,'2013-08-30 04:00:00.000')  --enddate  
    or ToDateWithEndTime BETWEEN Convert(datetime,'2013-08-20 04:00:00.000')--start date  
    AND Convert(datetime,'2013-08-30 04:00:00.000')

并在C#i中提取开始日期和结束日期。

  

FromDateWithStartTime =   Convert.ToDateTime(dt.Rows [0] [ “FDATE”])。的ToString(“YYYY / MM / DD   HH:MM:SS“);

     

ToDateWithEndTime = Convert.ToDateTime(dt.Rows [0] [“Edate”])。ToString(“yyyy / MM / dd”   HH:MM:SS“);

我希望这些日期介于START DATE和END DATE之间。 并列出DRP DOWN列表中的所有日期。 我该怎么做。

3 个答案:

答案 0 :(得分:0)

您可以使用foreach循环遍历查询并将值绑定到下拉列表

foreach (item in queryResults)
{
   ddlDate.items.add(item);
}

答案 1 :(得分:0)

您可以通过查询已填充的数据表(dtData)使用linq绑定下拉列表

ddlDate.DataValueField = "date_value";
ddlDepartment.DataTextField = "date_value";
ddlDepartment.DataSource = (from row in dtData.AsEnumerable()
                    select new { date_value = row["date_Column"].ToString()}).Distinct().ToList();
ddlDate.DataBind();

答案 2 :(得分:0)

你可以在C#中使用TimeSpan,你可以在这些天之间获得差异。比如当你使用Date.Substract(AnotherDate)方法从另一个日期中减去一个日期时,它将返回Timespan。你可以像这个例子一样获得两天之间的天数:

DateTime StartDate = DateTime.Now;
            DateTime EndDate= DateTime.Now.AddMonths(5);
            TimeSpan DateDiff = EndDate.Subtract(StartDate);
            int Days = DateDiff.Days;
            string Date;
            for (int i = 1; i <= Days; i++)
            {
                Date = StartDate.AddDays(double.Parse(i));
            }

试试这个。