Hallo Leute,
als eingefleischter Delphi-Programmierer versuche ich mir in den letzten Wochen C# anzueignen (viele Gründe wie Ihr euch vielleicht denken könnt).
Im Moment arbeite ich an einem Programm das Einträge aus meiner Datenbank mit Hilfe der Google API auf meinen Google-Kalender übertragen soll. Das funktioniert so weit auch wunderbar, nur gibt es da eine Sache die mir noch Kopfzerbrechen bereitet:
Ich benutze folgenden Code um meine Einträge abzugleichen:
----------------
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| private void writeEntryList(ArrayList inALDataToWrite) { CalendarService service = new CalendarService("CalendarApp"); service.setUserCredentials(fSUsername, fSPassword); foreach (EventEntry entry in inALDataToWrite) { Boolean lBIsInserted = false; foreach (EventEntry item in fALEntryListUnattended) { if (!lBIsInserted) { try { if (item.EventId == entry.EventId) { if (entry.Updated > item.Updated) entry.Update(); } } catch (NullReferenceException) { AtomEntry insertedEntry = service.Insert(postUri, entry); lBIsInserted = true; } } }
} } |
--------------------
Die inALDataToWrite enthält alle schon vorhandenen Datensätze und auch die Neuen. Bei allen neuen Datensätzen habe ich keinen Zugriff auf die EventId und löse damit eine NullReferenceException aus, die ich mit catch abfange.
Moderiert von
Christian S.: Quote- durch C#-Tags ersetzt