Laden...

Sortierung mit dbnull via linqToSql

Erstellt von chanderegg vor 13 Jahren Letzter Beitrag vor 13 Jahren 861 Views
C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 13 Jahren
Sortierung mit dbnull via linqToSql

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

T
14 Beiträge seit 2010
vor 13 Jahren

Änder doch die Definition in DateTime?, dann kannst du auch null zuweisen.