Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Sortierung mit dbnull via linqToSql
chanderegg
myCSharp.de - Member



Dabei seit:
Beiträge: 101
Herkunft: Solothurn CH

Themenstarter:

Sortierung mit dbnull via linqToSql

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
TThrebank
myCSharp.de - Member



Dabei seit:
Beiträge: 14

beantworten | zitieren | melden

Änder doch die Definition in DateTime?, dann kannst du auch null zuweisen.
private Nachricht | Beiträge des Benutzers