需要关闭调试器并重新启动才能读取保存的数据

时间:2011-12-27 15:39:39

标签: c# database linq

我可以通过月份日历搜索打开每日学校预订列表。 下面的表格将结果显示为中心网格中的学校列表。

Form with a list of schools that made a reservation http://www.iwva.be/images/bezoekers/Schools.jpg

这是我用来加载要放入网格的数据的代码(这是在中午之前)​​

var vReservationAM = (from oReservation in clsApplication._oDBConnection.tblReservations
                              where oReservation.StartTime >= mcCalendar.SelectionRange.Start.Date
                              && oReservation.StartTime < mcCalendar.SelectionRange.Start.Date.AddHours(12)
                              orderby oReservation.StartTime ascending
                              select oReservation);

对于每所学校,我都可以通过点击行开头的放大镜看到他们要求的活动。然后我会得到学校要求的活动清单(见下表)。

Form with a list of activities per school http://www.iwva.be/images/bezoekers/Activities.jpg

当我打开一个活动时,我可以更改数据,它也会在活动列表中更改。所以一切正常......除了一件奇怪的事情。 当我添加一个新活动时(见下面的表格),它没有显示在活动列表中(见上面的表格)。

Form to add an activity http://www.iwva.be/images/bezoekers/AddActivity.jpg

即使我使用monthcalendar进行新搜索,我也只能看到之前已保存过的活动。

但是当我查看数据库时,我可以看到新活动已被保存。

我必须关闭我的调试器并在加载数据并在网格中显示之前再次打开它。

这可能是什么原因?

1 个答案:

答案 0 :(得分:1)

找到它:

为了用活动填充网格,我运行了这个循环:

foreach (var oReservationDetail in _oReservationObject.ReservationData.tblReservationDetails)

我虽然数据库中的关系链接总是会检索最新的数据。显然它没有。一旦建立了链接,它就会使用相同的数据。

我用它替换了它:

var vActivities = (from oReservationDetails in clsApplication._oDBConnection.tblReservationDetails
                           where oReservationDetails.ReservationID == _oReservationObject.ReservationData.ID
                           orderby oReservationDetails.StartTime ascending
                           select oReservationDetails);

foreach (var oReservationDetail in vActivities)
{
    fill the grid
}