2013-04-17 7 views
7

मैं पिछले कुछ घंटों से संघर्ष कर रहा हूं और अभी भी मेरे सिर को इस दौर में नहीं ले जा सकता है। मेरे पास जो मुद्दा है, वह है जब किसी को उन्हें बेडिड देने वाले डेटाबेस अपडेट स्वीकार किए जाते हैं, जब मैं उन्हें कोशिश करता हूं और उन्हें निर्वहन करता हूं तो मैं बेडआईडी (डेटाबेस में) को कुछ भी नहीं सेट कर सकता। यह एक मुद्दा है क्योंकि मुझे जितना संभव हो उतना लोगों को स्वीकार करने और निर्वहन करने में सक्षम होना चाहिए।ऑपरेटर '=' को 'डीबीएनयूएल' प्रकार और 'इंटेगर' टाइप करने के लिए परिभाषित नहीं किया गया है

Sub Dis1_Click(ByVal s As Object, ByVal e As EventArgs) Handles Dis1.ServerClick 

    Dim time As String = Now().ToString("dd-MM-yyyy hh:mm:ss") 

    sql = "UPDATE Allocation SET BedID = NULL , DischargeDate =" + "'" + time + "'" + " WHERE BedID = 1 " 
    cmd = New OdbcCommand(sql, cn) 
    cmd.ExecuteNonQuery() 
End Sub 

Sub BedCheck1() 
    If r("BedID") = "" Then 
    Else 
     If r("BedID") = 1 Then 
      ba = s & "<tr><td>" & r("Surname") & "</td>" & "<td>" & r("Forename") & "/<td>" & "<td>" & r("AdmitDate") & "</td>" & "<td>" & r("DischargeDate") & "</td>" & "<td>" & r("comments") & "</td></tr>" 
     End If 
    End If 
End Sub 

धन्यवाद!

+0

क्या है को रोकने के लिए IsDbNull-समारोह उपयोग करने की आवश्यकता अपवाद का ढेर निशान? – Dai

उत्तर

15

से पहले आपको मूल्य पढ़ा एक DBNull की जांच करने की जरूरत है:

If Not IsDbNull(r("BedID")) Then 

    If r("BedID") = "" Then 
    Else If r("BedID") = 1 Then 
     ba = s & "<tr><td>" & r("Surname") & "</td>" & "<td>" & r("Forename") & "/<td>" & "<td>" & r("AdmitDate") & "</td>" & "<td>" & r("DischargeDate") & "</td>" & "<td>" & r("comments") & "</td></tr>" 
    End If 
End If 

ध्यान दें कि DBNull एक विशेष मामला है और आपको यह त्रुटि

+4

डीबीएनयूएल को 2 अन्य तरीकों से भी चेक किया जा सकता है। 'आर (" बेडआईडी ") IsNot DbNull.Value' और' टाइप टाइपऑफ आर ("BedID") सभी सिंटैक्स विकल्पों को दिखाने के लिए डीबीएनयूएल है। – DarrenMB

+1

कोई इस आदमी को एक बियर देता है! : डी –

संबंधित मुद्दे