Announcement

Collapse
No announcement yet.

DBNull.Value Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DBNull.Value Problem

    Hallo,
    ich hab versucht Codeteile aus C# in VB.net umzubauen. Das meiste klappt ganz gut, bis ich NULL getroffen bin.
    Durch Beiträge hier im Forum bin ich mittlerweile soweit, das ich weiß das es das unter VB.net nicht mehr gibt. Dafür muss ich also DBNull.Value nutzen.

    Jetzt hab ich da eine OleDB.Transaction die ich NULL setzen muss. Das VS2005 mäkelt das aber an mit "Der Wert von DBNull.Value kann nicht in OleDB.Transaction konvertiert werden"

    Kennt da jemand ne Lösung?


    Hier mal beide Code-Teile (C# und VB.net)

    C#
    Code:
    public void Commit() {
    			try {
    				if (mTx != null ) {
    					mTx.Commit();
    					mTx = null;
    				}
    			}
    			catch (Exception ex) {
    				throw new Exception("Error Commit of Database Session", ex);
    			}
    		}
    VB.net
    Code:
    'Commitet eine Transaktion.
    
        Public Sub Commit()
            Try
                If (Not mTx Is System.DBNull.Value) Then    <-- das nimmt er
                    mTx.Commit()
                    mTx = System.DBNull.Value    <--- das nimmer er nicht
                End If
            Catch ex As Exception
                Throw New Exception("Error Commit of Database Session", ex)
            End Try
        End Sub
    mTx ist die OleDB.Transaction

    Danke

  • #2
    Ich glaube mit System.DBNull bist du auf dem falschen Dampfer.
    Die Entsprechung der C# null ist in VB 'nothing'.

    Also
    Code:
    mTx = Nothing

    Comment


    • #3
      ah...ok

      aber mit meiner Umstellung von diesem != lieg ich doch soweit dann richtig, oder?

      Comment


      • #4
        Mal so unter uns Andreas, wo grad kein anderer mitliest , ich kann gar kein VB.Net.

        Präsentiere hier nur gefährliches Halbwissen das ich ich in Bezug auf VB nur mitnehme weil ich in der MSDN die Codebeispiele für nicht C# Sprachen nicht ausblende.

        Insofern ist folgender Hinweis mit Vorsicht zu geniesen.
        'Is' vergleicht ja nur zwei Objektinstanzen, da eine Transaktion aber nie DBNULL sein kann knallt der Vergleich zwar nicht, wird aber immer false ausgewertet.

        Eigentlich solltest du so vergleichen

        Code:
        If (mTx IsNot Nothing) Then
        ...

        Comment


        • #5


          ich hab ein wenig herumexperimentiert

          Code:
          Not mTx Is Nothing
          scheint die richtige Richtung zu sein.

          Ein IsNot gibt es auch garnicht.

          Comment


          • #6
            hy,

            für die if abfrage kannst du auch schreiben:

            if IsDBNull(mtx) = True then ...

            vielleicht hilft dir das irgendwie weiter

            Comment

            Working...
            X