Come potremmo gestire null per un campo datetime (ottenuto da SQL Server) nel nostro programma in C#?Come gestire null per un campo data/ora allow-null (DB) nel nostro programma?
6
A
risposta
12
Ci sono 3 approcci comuni qui;
- se si sta parlando di
object
(forse come si prelevarla da un data-reader), quindiDBNull.Value
può rappresentare nulla. Non tendo a escludere questo livello di dati, sebbene - a causa della cronologia .NET 1.1,
DateTime.MinValue
viene comunemente interpretato comenull
; un numero magico, forse - ma funziona ed è supportato dalla maggior parte dei dati vincolanti ecc. - in .NET 2.0,
Nullable<T>
significa che è possibile utilizzareDateTime?
- vale a dire un valore nullable of DateTime; usa semplicementeDateTime?
dove vuoi dire unoDateTime
che può essere nullo, e puoi dargli un valore dinull
o un validoDateTime
.
Alcuni altri pensieri su di accesso ai dati e valori nulli:
- caso di passaggio da un
SqlCommand
si must usoDBNull.Value
, nonnull
- vedi sotto - durante la lettura da un data-reader, Tendo a controllare
reader.IsDbNull(ordinal)
roba di comando (con Nullable<T>
come esempio):
param.Value = when.HasValue ? (object)when.Value : DBNull.Value;
3
Usa DateTime?
Che problema riscontrato, nello specifico?
- Modifica
Solo così è chiaro, questo è un Nullable
DateTime oggetto, non una domanda :)
DateTime? t = null;
- modifica
Rispondendo a commentare, controllare in questo modo:
DateTime? theTime;
if(table["TheColumn"] == DBNull.Value){
theTime = null;
} else {
theTime = (DateTime) table["TheColumn"];
}
Problemi correlati
- 1. eseguire un programma Java dal nostro programma Java
- 2. MySQL DB più dati per il campo
- 3. Come gestire il datacontext annidato nel BL?
- 4. Django modello di campo predefinito per Null
- 5. Come posso gestire più configurazioni di un singolo programma Haskell?
- 6. Come usare il nostro carattere personalizzato sul nostro sito web
- 7. Specifica la dimensione db massima sqlite per la mia app. Come gestire db full exception
- 8. Come gestire valori json null in Swift
- 9. Campo chiave esterna null nel mapping @OneToOne con Hibernate/JPA
- 10. Impostazione del campo "Publisher" per un programma di installazione NSIS
- 11. j8583 non può gestire il campo 128
- 12. Impostazione di un campo come Non Null in phpmyadmin
- 13. Il modo migliore per gestire la connessione DB nel DAL: creare o passare?
- 14. campo sommerso nel tipo ereditato compilazione programma Nimrod
- 15. Enum nel DB o NO Enums nel DB
- 16. Come si aggiunge un indice univoco su un campo in un DB MySQL partizionato?
- 17. Come gestire i rami git con diversi schemi db?
- 18. Campo di aggiornamento quando non è Null
- 19. sqlSave Aggiornamento DB Oracle Tabella -Non lavorare per campo Data
- 20. come gestire "sendDidFinish" nel sharekit
- 21. Come inizializzare un campo const nel costruttore?
- 22. Campo Mongodb non null delete
- 23. Come gestire le interruzioni di connessione del DB Mongoose
- 24. Android: come devo gestire le eccezioni di accesso ai DB?
- 25. Entity Framework 4 (utilizzando EDMX), come aggiungere un campo per modellare che DB non ha effettivamente il campo
- 26. Modo pulito Guava per gestire la raccolta eventualmente-null
- 27. Mongo DB Cancellare un campo e il valore
- 28. Utilizzando COALESCE per gestire i valori NULL in PostgreSQL
- 29. Come collegare la libreria Poco (librerie) al nostro programma in ambiente UNIX
- 30. come possiamo inserire ".db" nell'emulatore?
Mark, grazie mille. – odiseh