View Full Version : vb controllo campo di tipo data
The March
06-04-2004, 12:12
Ola a todos!
pesco dal db un campo di tipo data, devo controllare che questo campo non sia vuoto quindi ho pensato:
If i("INT_DATAEFFET") is nothing Then
...
ma non funziona, non da errore ma non entra mai nel if, nonostante il campo sia vuoto
così ho iniziato a cercare infiniti modi, modificando prima la select :
Select ISNULL(INT_DATAEFFET,'')AS INT_DATAEFFET (...)
e poi nuovamente l'if:
If CType(i("INT_DATAEFFET"), String) = "" Then
non funzionava... la funzione isnull restituisce 1900-01-01 00:00:00.000 in caso di campo di tipo data con valore nullo
allora ho scritto
If CType(i("INT_DATAEFFET"), String) = "1900-01-01 00:00:00.000" Then
ma continua a non funzionare... ho provato altri metodi... ma senza risultato...
qualcuno sa suggerirmi come fare?
grazie!
davidino80
06-04-2004, 12:18
si in effetti è un problema se il campo è vuoto.. avevo provato anche io con Nothing però mi da cmq errore... :confused:
Ragazzi condivido con i miei discepoli (oggi sono preso male, non fateci caso :p) questa bellissima funzione :)
Option Explicit
Public Enum TDati
TD_WRITE
TD_READ
End Enum
Public Function TDato(ByVal sDato As Variant, ByVal TD As TDati) As String
'trattamento dei dati
Select Case TD
Case TD_WRITE: TDato = IIf(sDato = "", "Null", "'" & Replace(sDato, "'", "''") & "'")
Case TD_READ: TDato = IIf(IsNull(sDato) = False, sDato, "")
End Select
End Function
Ecco, vi consiglio di metterla dentro un modulo (.bas) così la gestione e l'organizzazione è molto migliore!
La funzione funziona in scrittura o in lettura a seconda del parametro passato a quest'ultima...
Nel caso della lettura infatti va a fare il controllo se il campo è vuoto (ma in verità è nullo), invece nella modalità di scrittura è utile (sempre per le stringhe) perchè se gli viene passato un valore vuoto lui andrà a creare la stringa già formattata per la query di questo tipo: 'Null', così andrà a mettere un campo vuoto!!
Es lettura:
txtCognome = TDato(rs!Cognome, TD_READ)
Es scrittura:
... "VALUES(" & TDato(txtCognome, TD_WRITE) & ")" ...
Per la questione del campo data nn è un problema, perchè tu basta che poi controlli che il risultato che ti torna dalla funzione sia vuoto (come stringa intendo) per cui con due belle virgolette vicine: ""
se ci sono ancora problemi chiedi pure! :p
The March
06-04-2004, 13:31
IsNull(sDato)
ecco cosa mi serviva!
ma perchè non mi funziona?
non mi fa compilare:
"name isNull not declared"
p.s.
non ho utilizzato tutta la funzione da te postata, ho utilizzato solo isnull
E' impossibile che nn funzioni, prova a vedere bene dove l'hai messa, o posta qui il codice dov'è contenuta la funzione :)
The March
06-04-2004, 13:42
Originariamente inviato da matpez
E' impossibile che nn funzioni, prova a vedere bene dove l'hai messa, o posta qui il codice dov'è contenuta la funzione :)
isNull() non è una funzione... non esiste!
...
... sto parlando di vb.net...
Originariamente inviato da The March
... sto parlando di vb.net...
.... il tuo titolo dice: vb controllo campo di tipo data
va be di VB.NET nn so praticamente nulla.... mi spiace, la prossima volta cerca di specificare il linguaggio preciso anche perchè VB e VB.NET sono nn dico uno l'opposto dell'altro, ma diciamo che in comune hanno il nome :p
The March
06-04-2004, 14:02
Originariamente inviato da matpez
.... il tuo titolo dice: vb controllo campo di tipo data
va be di VB.NET nn so praticamente nulla.... mi spiace, la prossima volta cerca di specificare il linguaggio preciso anche perchè VB e VB.NET sono nn dico uno l'opposto dell'altro, ma diciamo che in comune hanno il nome :p
nooooo
non ci credo!!!!!
sei uno dei pochi che riponde sempre ai topic....
ma non conosci il linguagio che utilizzo io :cry:
e adesso chi mi aiuta?
cmq ho trovato la soluzione (per questo problema)
if If i("INT_DATAEFFET") Is System.DBNull.Value Then
per ora facendo così non mi ha dato ne errori ne problemi ed entra nell'if (al contrario delle altre prove che ho fatto)
grazie comunque matpez;)
Prego :p
VB.NET lo farà dopo l'estate, ora ho studiato ASP.NET
ciaoooo
Non esiste nel VB.net ila funzione IsNull.La controparte per gli oggetti e' IsNothing mentre per i campi null di un database,a prescindere dal tipo,vanno verificati come hai fatto tu,con System.DBNull.
Questo perche' il concetto di Null(e di altri tipi di dati) si differenzia tra il framework e Sql,ad esempio.
The March
06-04-2004, 15:28
Originariamente inviato da Geen
Non esiste nel VB.net ila funzione IsNull.La controparte per gli oggetti e' IsNothing mentre per i campi null di un database,a prescindere dal tipo,vanno verificati come hai fatto tu,con System.DBNull.
Questo perche' il concetto di Null(e di altri tipi di dati) si differenzia tra il framework e Sql,ad esempio.
quindi mi confermi che come ho fatto io è l'unico modo possibile?
Si e' l'unico nonche il corretto modo di procedere per i campi Null del DB!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.