sorry for my bad English,
Dim myApp As Appointment = Appointment.FromBytes(CType(mydatabase.AllPropertiesMemberField, Byte()))
Hello Thomas,
Thank you for contacting Infragistics. The issue you are seeing is not entirely clear nor does this appear to be related to your database. From my understanding one of your properties is returning an invalid value or possibly null from the byte array. I recommend handling the UltraCalendarInfo's AppointmentDataError event to trap which property may have been invalid or null. If this event is fired you know something went wrong.
eg.
private void ultraCalendarInfo1_AppointmentDataError(object sender, Infragistics.Win.UltraWinSchedule.AppointmentDataErrorEventArgs e) { //Cancel the default message box e.ShowMessageBox = false; //Show a custom message box DialogResult result = MessageBox.Show(this, "Failed to add appointment. Would you like to set default values?", "Error", MessageBoxButtons.YesNo); if ( result == DialogResult.Yes ) { //Check it the Subject was null DataRow dr = ((DataRowView)e.Appointment.BindingListObject).Row; if ( dr["Subject"] == DBNull.Value ) { //Set the subject to a default string e.Appointment.Subject = "Error appointment"; } //Check if the StartDateTime is null if ( dr["StartDateTime"] == DBNull.Value ) { //Set StartDateTime to a deafult e.Appointment.StartDateTime = DateTime.Now; } //Check if the EndDateTime is null and make sure it is after the StartDateTime if ( dr["EndDateTime"] == DBNull.Value || ((DateTime)dr["EndDateTime"]) <= ((DateTime)dr["StartDateTime"])) { //Set EndDateTime to a deafult e.Appointment.EndDateTime = e.Appointment.StartDateTime.AddHours(1); } } }
Let me know if you have any questions.
Hello Michael,
Thank you for the code, but this brings no error message.
http://www.riro-shop.de/Termine_2018.zip
you can download my database, it is an Access-Database, here is only 1 Appontment of 88 OK.
maybe you will find the mistake.
I put together a new sample that binds a DataSet directly to your database. When I bind our api to AllProperties it results in no appointments showing up.
8666.WindowsFormsApp1.zip
At this time I logged a development item 255853 for our team to investigate this issue. If the behavior can be isolated in a more simpler manner please modify the sample and reattach it here. I also created a private support case to follow up with you CAS-197017-V2B5N7. You can access this case here after signing into your Infragistics account.
Just to expand upon this, it looks like either you are either deriving from Appointment and using your own derived appointment class.
Or you are setting some property on the appointment to an instance of a class you are defining in your code. Maybe the Tag property.
Since the sample you sent us doesn't have that class, the appointments can't be loaded. But that's only a problem with the sample, since it doesn't reference the assembly that defines the class it's looking for.
Presumably, your real application DOES have a reference to that assembly, so it's likely that the problem you are getting is slightly different than the one we are seeing.
Perhaps the version of the assembly has changed - in which case, the CalendarInfo won't be able to deserialize that object because it won't be able to find it.
Or maybe the class itself implements serialization - it would have to, since it got serialized to the database in the first place - but has an error in it's deserialization code.
Thanks for your help, I found the error,
it occurred after the update from Schedule 13.1 to 16.2
Thank you for following up. Let us know if there is anything else we can assist you with or if you have any questions.