|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
[VB.NET] Problema con le date
Uso VB.NET
DB: SqlServer2005 Ho un campo DateTime A volte per esigenze mi serve che il campo DATA nel programma rimanga vuoto, però se lo lascio vuoto mi va in errore. Inizialmente avevo pensato di controllarlo Ossia se era "" non lo salvavo. Solo che a volte contiene la data ed io la devo svuotare, e quando salvo, se lo controllo non salva perchè lo vede "" se non lo controllo va in errore Come posso risolvere il problema????? Ciao e grazieeeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
in VB.net (come anche in C#.net) il tipo DateTime e' di tipo value.
Quindi non puo' accettare NULL come valore. Ci sono un po' di soluzioni: - Forzi gia' sul database il campo ad essere NOT NULL, e decidi qual e' la data che considererai come NULL (ES: 1/1/1970, data assolutamente a caso). - Ogni volta che leggi un record con quella data allora dovrai tenere conto che puo' essere NULL, e il tuo dato restituito dovra' essere processato lato VB.net nella lettura. Valore consigliato lato VB.net e' default(DateTime); - Ogni volta che leggi un record con quella data allora dovrai tenere conto che puo' essere NULL, e il tuo dato restituito dovra' essere processato lato SQL nello statment. (Select ....., ISNULL( miadata, '1/1/1970' ) as datacucinata FROM ....) - Altro? Ovviamente gli inserimenti e gli aggiornamento dovranno tenere conto della soluzione da te scelta.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:16.