DevExpress计划程序未填充SQL Server数据库中的数据
本文关键字:数据库 数据 Server SQL 计划 程序 填充 DevExpress | 更新日期: 2023-09-27 18:25:04
我想用数据库存储过程中的数据填充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,它代表我的存储过程,我选择了这样的映射:
https://i.stack.imgur.com/E6btH.png
在代码中,我像这样填写reservationDataAdapter(它是自动创建的):
this.reservationsTableAdapter.Fill(this.filharmonijaDataSet1.Reservations);
不知怎的,调度程序总是只显示一条记录,尽管还有很多。。。问题出在哪里?。。
我怀疑您的代码在将XtraScheduler与SQL数据库绑定时缺少了一些东西。你需要熟悉DevExpress的工作方式,对于调度器,你唯一需要做的就是了解约会数据源和资源数据源的日历映射。
我建议您仔细阅读有关数据绑定如何使用Scheduler控件的文档。
如果您在设计时分配数据源,请按照以下文档链接进行参考,然后相应地修改您的数据源:
第5课-在设计时将调度器绑定到MS SQL数据库
它需要设置两个属性来显示约会:
- 约会数据源
- 资源数据源
您还可以以自定义方式创建约会或资源。将资源数据源留空,然后将此创建资源手动放置在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);
参考文献:使用资源以程序方式将数据绑定到extrascheduler。
希望能帮上忙。。