Αντιμετώπιση των Null τιμών σε Access database πεδία


Προσοχή χρειάζεται όταν πάτε να διαβάσετε μία τιμή από ένα database πεδίο της Access καθώς και όταν πάτε να αποθηκεύσετε μία τιμή σε αυτό. Ο λόγος οφείλεται στην ευαισθησία των πεδίων στις Null τιμές. Παρακάτω, δίνω μία γενική οδηγία για την αντιμετώπιση του προβλήματος.

Στις δικές μου εφαρμογές χρησιμοποιώ δύο δικές μου συναρτήσεις:

 

- Την SetDBValue, για ομαλή αποθήκευση.
- Την
GetDBValue, για ομαλό διάβασμα.

 

Δείτε τον κώδικά τους :

 

'Επιστρέφει σωστή τιμή για αποθήκευση σε database πεδίο.
Private Function SetDBValue(ByVal value$) As Object

If value.Length = 0 Then Return DBNull.Value Else Return value

End Function

'------------------------------------------------------------------------

'Επιστρέφει σωστή τιμή από διάβασμα ενός database πεδίου.
Private Function GetDBValue(ByVal value As Object) As Object

If Convert.IsDBNull(value) Then Return "" Else Return value

End Function

'------------------------------------------------------------------------

Η VB.NET παρέχει την κλάση DBNull που αντιπροσωπεύει μία null τιμή (nothing). Αν προσπαθήσετε να αποθηκεύσετε μία εγγραφή που σε κάποιο nullable πεδίο δεν έχετε θέσει τιμή θα πάρετε run-time error. Σε αυτά τα "κενά" πεδία, βάλτε την τιμή DBNull.Value.

Παρόμοια, όταν προσπαθήσετε να διαβάσετε από ένα nullable πεδίο που δεν έχει τιμή, πάλι θα πάρετε ένα run-time error. Στην περίπτωση αυτή, κάντε χρήση της κλάσης Convert και της μεθόδου IsDBNull. Περάστε της την τιμή του πεδίου ώστε να ελέγξει αν είναι null.

 

·         Χρήστος Μουρατίδης