C# 根据两个不同表中的阻止日期生成未来3个月的可用日期

C# 根据两个不同表中的阻止日期生成未来3个月的可用日期,c#,asp.net,sql,sql-server-2008,tsql,C#,Asp.net,Sql,Sql Server 2008,Tsql,我正在进行一个项目,需要使用webform$c将其转换为asp.net应用程序 下面是jQuery中的一个工作脚本,它根据日历从当前日期开始生成下一个90天的日期 这是一个简单的脚本,它不查找阻止日期等 它也只显示工作日的日期,即从周一到周五 $(function(){ function pad(n){return n<10 ? '0'+n : n} var date = new Date(); var selectElement = $('<select name="dddDate

我正在进行一个项目,需要使用webform$c将其转换为asp.net应用程序

下面是jQuery中的一个工作脚本,它根据日历从当前日期开始生成下一个90天的日期

这是一个简单的脚本,它不查找阻止日期等

它也只显示工作日的日期,即从周一到周五

$(function(){
function pad(n){return n<10 ? '0'+n : n}
var date = new Date();
var selectElement = $('<select name="dddDate" class="ddDate" >'), optionElement;
for (var count =0; count < 91; count++){
    var day = date.getUTCDay();
   if (day == 0 || day == 1 || day == 2 || day == 3 ||  day == 4 || day == 5) {

      formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' +  date.getUTCFullYear();
      optionElement = $('<option>')
      optionElement.attr('value',formattedDate);
      optionElement.text(formattedDate);
      selectElement.append(optionElement);  
    }
    date.setDate(date.getDate() +1);
}
$('#ddDate').append(selectElement);
});
这很容易。现在,我必须从两个不同的表EventCalendar&Booking表生成这些日期,我必须查看哪些日期被阻止或预订,并相应地只显示未来90天的可用日期

假设EventCalendar有BlockDate列,Booking表也有BlockDate列

如果有人能帮助生成一个sql查询,该查询将根据两个表中的阻止日期生成可用日期,并填充下拉列表,我将不胜感激。任何想法或指针都会很好


我查找了这样的示例,但没有找到太多帮助。

既然您没有使用SQL生成可用日期,那么为什么要使用它来删除此列表

只需加载阻止日期和事件日期,然后从列表中删除这些日期


为了使用SQL实现您想要的功能,我希望您需要使用可用日期填充一个表,然后对这两个表进行外部联接,并且只选择阻塞表和事件表为空的行。

以下是在SQL中生成日期的一种方法

我假设您在blockeddate列中使用日期数据类型

declare @date date = getdate()

;with dates(d)
as
(
    select  @date
    union all
    select DATEADD(day, 1, d)
    from    dates
    where   d < DATEADD(day, 89, @date)
)

select * 
from dates
except
(
select blockedDate
from table1
union all
select blockedDate
from table2
)

你需要给出你的桌子结构或者其他一些东西。如果没有这些,就无法猜测sql语句的条件应该是什么。我只需要找到一个方法,根据这些日期如何生成可用的日期或另一个简单的方法,可以阻止弹出日历上的这些日期。就我而言,我必须在下拉列表中填写可用日期