verwendetes Datenbanksystem: Oracle
Hallo zusammen
Ich schreibe zur Zeit ein Programm, mit welchem man mittels PDA Leistungen erfassen kann (in einem Spital). Nun kriege ich die Daten via Webservice auf das PDA. Soweit funkioniert alles.
Blöderweise haben Patienten die noch im Spital liegen und nicht klar ist, wenn sie wieder gehen können, noch kein Austrittsdatum. Ich soll nun aber genau nach diesem Austrittsdatum sortieren.
Dies ist mit linqToSql gemacht worden (ich baue das Programm nur aus). Leider ist dies aber nicht möglich, wenn Felder DBNull enthalten. Ich wollte deshalb die Daten auf den maximal Wert setzen. Diese funktioniert jedoch muss ich diese Felder wieder auf null setzen bevor ich sie dem Webservice schicke. Dies lässt DateTime nicht zu.
Hier mein Code
private PABSSmartDeviceDBDataSet.PatientFaelleDataTable CopyToDisplayTable(PABSSmartDeviceDBDataSet.PatientFaelleDataTable Table)
{
foreach (PABSSmartDeviceDBDataSet.PatientFaelleRow row in Table)
{
if (row.IsAustrittNull())
{
row.Austritt = DateTime.MaxValue;
}
}
PABSSmartDeviceDBDataSet.PatientFaelleDataTable displayTable = new PABSSmartDeviceDBDataSet.PatientFaelleDataTable();
IEnumerable<PABSSmartDeviceDBDataSet.PatientFaelleRow> query =
from row
in Table.Distinct(new RowComparer())
orderby row.SortID, row.Abteilung, row.Austritt descending, row.Fachbereich, row.Zimmer, row.Name, row.Vorname
//orderby row.SortID, row.Abteilung, row.Fachbereich, row.Zimmer, row.Name, row.Vorname
select row;
query.CopyToDataTable<PABSSmartDeviceDBDataSet.PatientFaelleRow>(displayTable, LoadOption.OverwriteChanges);
return displayTable;
}
Kann ich irgendwie die linqToSql abfrage abändern, so dass DBNull keinen Fehler mehr wirft?
Irgendwie finde ich die DataTable-Definition auch nicht super. Der Austritt ist als DateTime definiert, der Default ist DBNull und bei Null wird eine Exception geworfen. Das macht doch irgendwie keinen Sinn oder?
Habe versucht den Default zu ändern aber kann dort höchstens ein Datum eingeben. Beim NullValue konnte ich gar nichts ändern. Welches sind dort die besten Einstellungen?
Vielen Dank für Eure Hilfe
chanderegg
Änder doch die Definition in DateTime?, dann kannst du auch null zuweisen.