Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DevExpress计划程序未填充SQL Server数据库中的数据_C#_Sql Server_Winforms_Devexpress_Scheduler - Fatal编程技术网

C# DevExpress计划程序未填充SQL Server数据库中的数据

C# DevExpress计划程序未填充SQL Server数据库中的数据,c#,sql-server,winforms,devexpress,scheduler,C#,Sql Server,Winforms,Devexpress,Scheduler,我想用数据库存储过程中的数据填充XtraScheduler。调度程序只填充了一条记录,我不明白为什么。存储过程正确,返回8条记录 以下是我的存储过程: ALTER PROCEDURE [dbo].[Reservations] AS BEGIN SELECT HallSeat.HallGroupID, Color, Price, SeatRow, SeatRowLetter, SeatNumber, SeatNumberLetter, Reservat

我想用数据库存储过程中的数据填充XtraScheduler。调度程序只填充了一条记录,我不明白为什么。存储过程正确,返回8条记录

以下是我的存储过程:

ALTER PROCEDURE [dbo].[Reservations]
AS
BEGIN
    SELECT  
        HallSeat.HallGroupID, Color, Price, SeatRow, SeatRowLetter, 
        SeatNumber, SeatNumberLetter, ReservationTime, IsReserved 
    FROM 
        HallSeat
    LEFT JOIN 
        HallGroup ON HallGroup.HallGroupID = HallSeat.HallGroupID
    LEFT JOIN 
        Hall ON HallGroup.HallID = Hall.HallID  
    WHERE 
        (IsReserved = 'true') 
END
我将Scheduler中的约会数据源分配给代表我的存储过程的reservationsBindingSource,并选择如下映射:

在代码中,我这样填充reservationDataAdapter(它是自动创建的):


不知怎的,调度程序总是只显示一条记录,即使还有很多。。。问题在哪里

我怀疑您的代码在将XtraScheduler与SQL数据库绑定时遗漏了一些东西。您需要熟悉DevExpress的工作方式,对于调度器,您唯一需要做的是了解约会数据源和资源数据源的日历映射

我建议您阅读有关如何使用调度程序控制的文档

如果要在设计时指定数据源,请按照以下文档链接进行参考,然后相应地修改数据源:

需要设置两个属性才能显示约会:

  • 预约数据源
  • 资源数据源
  • 您还可以自定义方式创建约会或资源。将资源数据源保留为空,然后将此“创建资源”手动放置在Form_Load事件或其他位置:

    ApptResourcesBO.fillAll();
    Object resourceID = new Object();
    DataTable dtSyatemUsers = ApptResourcesBO.getAll();
    foreach (DataRow drUser in dtSyatemUsers.Rows)
    {
    resourceID = Convert.ToInt32(drUser["apr_UniqueID"]);
    Resource resourceUser = new Resource(resourceID, Convert.ToString(drUser["apr_ResourceName"]));
    schedulerStorage.Resources.Add(resourceUser);
    }
    
    您还可以通过编程方式将约会添加到XtraScheduler。请查看以下代码:

        Appointment apt = schedulerControl1.Storage.CreateAppointment(AppointmentType.Normal);
        apt.Start = DateTime.Today.AddHours(8);
        apt.Duration = TimeSpan.FromHours(1);
        apt.Subject = "Subject";
        apt.Description = "Description";
        schedulerControl1.Storage.Appointments.Add(apt);
    
    参考资料:


    希望这对您有所帮助。

    您确定没有丢失任何财产吗??您是否也设置了约会数据源和资源数据源属性???如果您想以自定义方式创建这些记录,那么请使用另一种方法填充调度程序控件。为什么即使没有资源,它也会填充该记录?我想先在没有资源的情况下测试它
        Appointment apt = schedulerControl1.Storage.CreateAppointment(AppointmentType.Normal);
        apt.Start = DateTime.Today.AddHours(8);
        apt.Duration = TimeSpan.FromHours(1);
        apt.Subject = "Subject";
        apt.Description = "Description";
        schedulerControl1.Storage.Appointments.Add(apt);