C# DevExpress计划程序未填充SQL Server数据库中的数据
我想用数据库存储过程中的数据填充XtraScheduler。调度程序只填充了一条记录,我不明白为什么。存储过程正确,返回8条记录 以下是我的存储过程: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
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的工作方式,对于调度器,您唯一需要做的是了解约会数据源和资源数据源的日历映射 我建议您阅读有关如何使用调度程序控制的文档 如果要在设计时指定数据源,请按照以下文档链接进行参考,然后相应地修改数据源: 需要设置两个属性才能显示约会:
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);