Avatar billede mickros Nybegynder
16. november 2004 - 14:05 Der er 2 kommentarer

Kompilerings Fejl eller hvad?

Jeg sad i går og debuggede noget denne kode:

If IsDBNull(DataBinder.Eval(dvSMA, "[0].Slut_Dato")) Then
If Slut_Dato.Text.Length > 0 Then Return True '??? underlig fejl
Else
If SQLDate(Slut_Dato.Text) <> SQLDate(DataBinder.Eval _(dvSMA, "[0].Slut_Dato")) Then Return True
End If

Da jeg oplevede at den i 2. linje udførte "Return True" delen selv om IF betingelsen var falsk.

Nu er mit spørgsmål så er der andre der har oplever dette og er der noget man kan gøre ved det?

(Jeg arbejder i VS 2003 men APS.NET m/ VB.NET som kodesprog)
Avatar billede burningice Nybegynder
22. november 2004 - 21:21 #1
well... dit if-statement er nok ikke falsk så - tror ikke din computer sådan udfører koden alt efter hvilket humør den er i ;)

tror jeg skal se lidt mere kode, for der er noget der ser meget underligt ud. Slut.Dato !? hvad er det for en størrelse, og hvorfor er den skrevet ind her

DataBinder.Eval(dvSMA, "[0].Slut_Dato" ??
Avatar billede mickros Nybegynder
23. november 2004 - 17:47 #2
Koden:

Protected WithEvents daSMA As System.Data.SqlClient.SqlDataAdapter
Protected WithEvents dsSMA As xpost.dsSMA_Type
Protected WithEvents dvSMA As System.Data.DataView
Protected WithEvents Slut_Dato As System.Web.UI.WebControls.TextBox

Private Function Changed() As Boolean
    If ViewState("State") = "Edit" Then
        If Cache("SMA") Is Nothing Then
            daSMA.Fill(dsSMA, "SMA")
            Cache.Insert("SMA", dsSMA)
        Else
            dsSMA = CType(Cache("SMA"), DataSet)
        End If
        dvSMA.Table = dsSMA.SMA
        dvSMA.RowFilter = "SMA_ID = " + ViewState("ID")
        If IsDBNull(DataBinder.Eval(dvSMA, "[0].Slut_Dato")) Then
            If Slut_Dato.Text.Length > 0 Then Return True
        Else
            If SQLDate(Slut_Dato.Text) <> SQLDate(DataBinder.Eval(dvSMA, "[0].Slut_Dato")) Then Return True
        End If
        Return False
    Else
        Return True
    End If
End Function

DataBinder.Eval(dvSMA, "[0].Slut_Dato") retuner værdien af en column af typen smalldatetime fra en database på en MS SQL Server

Jeg siger "IF betingelsen var falsk" fordi jeg kontroleret værdien af "Slut_Dato.Text.Length" med Quick Wash funktionen og den skrev at den var 0
derudover kontolerret jeg værdien af "Slut_Dato.Text.Length > 0" med Quick Wash funktionen og den skrev at den var falsk.

Det skal lige siges at jeg siden hen har kompileret selv same kode uden ændringer på en anden pc uden fejl.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester