2012-04-19 69 views
2

我正在创建一个预约系统,我想这样做,当用户选择日历上的下拉框将填充可用的时间。除了操作员

下面是代码我有...

Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged 

    Label1.Text = Calendar1.SelectedDate 
    Dim db As New DataClasses2DataContext 

    Dim times = From s In db.Apps Where s.Date = Calendar1.SelectedDate Select New With {s.StartTime} 

    Dim allslots = From c In db.Slots Select c.StartTime 

    Dim leftover = times.Except(allslots) 

    DropDownList1.DataSource = leftover 
    DropDownList1.DataBind() 


End Sub 

这是我得到的错误...

无法投类型的对象System.Data.Linq.DataQuery 1[System.TimeSpan]' to type 'System.Collections.Generic.IEnumerable 1 [VB $ AnonymousType_1`1 [System.TimeSpan]”。

从我的一般知识,我知道我将需要一个时间跨度.parse的地方,我已经玩过东西,但似乎无法解决它,任何人都可以帮忙吗?

谢谢, Cora。

回答

3

我想你的意思是这样的:

Dim times = From s In db.Apps 
      Where s.Date = Calendar1.SelectedDate 
      Select s.StartTime 

我想你可能已经向后得到了Except。你的意思是?

Dim leftover = allslots.Except(times) 
+0

我没有,但它在下拉框中仍然没有显示任何东西,没有错误只是空白:/ – Cora 2012-04-19 16:32:06

+0

我改变了下拉框从dropdownlist1至次,获得了这个错误... “数据源”不是'System.Linq.IQueryable(Of System.TimeSpan)'的成员。 – Cora 2012-04-19 16:34:55

+0

就是这样!谢谢! – Cora 2012-04-19 16:36:50