Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

कैसे जांचें कि DataReader मान शून्य नहीं है?

Nothing इसका मतलब है कि किसी वस्तु को प्रारंभ नहीं किया गया है, DBNull इसका मतलब है कि डेटा परिभाषित/गायब नहीं है। जाँच करने के कई तरीके हैं:

' The VB Function
If IsDBNull(Reader.Item(0)) Then...

GetDateTime विधि समस्याग्रस्त है क्योंकि आप इसे एक गैर मान को डेटटाइम में बदलने के लिए कह रहे हैं। Item() रिटर्न ऑब्जेक्ट जिसे आसानी से पहले . परखा जा सकता है परिवर्तित।

 ' System Type
 If System.DBNull.Value.Equals(...)

आप DbReader भी कर सकते हैं। यह केवल क्रमसूचक अनुक्रमणिका के साथ काम करता है, स्तंभ नाम के साथ नहीं:

If myReader.IsDbNull(index) Then 

उसके आधार पर, आप या तो साझा वर्ग के सदस्यों के रूप में कार्यों को एक साथ रख सकते हैं या डीबीएनयूएल के परीक्षण के लिए एक्सटेंशन में फिर से काम कर सकते हैं और एक डिफ़ॉल्ट मान वापस कर सकते हैं:

Public Class SafeConvert
    Public Shared Function ToInt32(Value As Object) As Integer
        If DBNull.Value.Equals(Value) Then
            Return 0
        Else
            Return Convert.ToInt32(Value)
        End If
    End Function

    Public Shared Function ToInt64(Value As Object) As Int64
        If DBNull.Value.Equals(Value) Then
            Return 0
        Else
            Return Convert.ToInt64(Value)
        End If
    End Function

    ' etc
End Class

उपयोग:

myDate = SafeConvert.ToDateTime(Reader.Item(0))

डेटटाइम कनवर्टर के लिए, आपको यह तय करना होगा कि क्या वापस करना है। मैं उन्हें व्यक्तिगत रूप से करना पसंद करता हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT विवरण पर मान्य माह नहीं है

  2. मैसकल का ग्रुप बाय और ओरेकल का ग्रुप बाय बिहेवियर अलग क्यों है

  3. एक कथन में अनुक्रम से कई NEXTVAL क्वेरी करें

  4. Varchar2 और char . के बीच प्रमुख अंतर क्या है?

  5. ओल्ड स्टाइल ओरेकल आउटर जॉइन सिंटेक्स - लेफ्ट आउटर जॉइन में बराबर चिह्न के दाईं ओर (+) का पता क्यों लगाएं?