Avatar billede websam Nybegynder
05. september 2005 - 09:30 Der er 15 kommentarer og
1 løsning

Hvad betyder denne fejl ?

Hejsa,

Jeg har ændret navnet på en usercontrol og efter at have rettet det til diverse steder får jeg følgende fejl når jeg køre mit projekt :

Exception of type System.StackOverflowException was thrown.

Hvad skal det sige og hvordan kommer jeg af med problemet ?

/Websam
Avatar billede websam Nybegynder
05. september 2005 - 11:20 #1
Det ser ud til at det ikke er tilladt at skabe forbindelse til en klasse øverst i en anden klasse :

Dim objClass_1 As Class_1 = New Class_1

Men at dette skal gøres i hver af de functioner jeg har i den klasse hvor jeg skal bruge den anden klasse.

Dette virker dog for mig noget latterligt, nogen ideer til hvorfor jeg ikke kan/må det ?

/Websam
Avatar billede snepnet Nybegynder
05. september 2005 - 12:22 #2
jeg vil tro du har fået produeret en "uendelig løkke" et sted - eller måske har du fået lavet et system hvor class_1 instantierer sig sig når du starter processen med at instantiere den første.

men .... jeg forstår ikke helt hvad du skriver klokken 11:20.

du kan sagtens instantiere en klasse i forbindelse med deklareringen, hvis det er det du mener med "øverst i en anden klasse"...

såhh.... det skulle være tilstrækkeligt at skrive den kodelinie du har skrevet én enkelt gang (øverst) for så bare bruge instansen objClass_1 i dine metoder.

mvh
Avatar billede websam Nybegynder
05. september 2005 - 12:32 #3
Det jeg mener er at jeg har 2 klasser en til database behandling og en til validering inden jeg gemmer i database. De kunne se således ud :

Public Class Database_Class
    Public Function Func_1
    '--- noget kode til at gemme i database
    End Function

    Public Function Func_2
    '--- noget kode til at opdatere i database
    End Function

    Public Function Func_3
    '--- noget kode til at slette i database
    End Function
End Class

Public Class Validate_Class
    Dim objData As Database_Class = New Database_Class

    Public Function Func_1
    '--- noget kode der validere inden der gemmes i database
    End Function

    Public Function Func_2
    '--- noget kode der validere inden der opdateres i database
    End Function

    Public Function Func_3
    '--- noget kode der validere inden der slettes i database
    End Function
End Class

i min validate_class skriver jeg så 'Dim objData As Database_Class = New Database_Class', men dette generere den ovenstående fejl, laver jeg det i stedet inde i hver af mine functioner så virker det fint og det fatter jeg ikke helt ?!?

/Websam
Avatar billede snepnet Nybegynder
05. september 2005 - 13:02 #4
det lyder underligt .... der skulle ikke være noget til hinder for at bygge det som du har skrevet herude nu.
jeg kan ikke fortælle dig hvad fejlen er på det grundlag - du bliver nok nødt til at poste noget mere kode.
mvh
Avatar billede websam Nybegynder
05. september 2005 - 13:09 #5
Ok kommer her der hvor jeg tror det går galt er når jeg forsøger at liste produkt grupper fra en cache den ligger i min buisness klasse og ser således ud :

'--- Function der smider dataset med produkter i cache.
Public Function CacheProduct(ByVal Update As String)
    Dim Source As DataSet = CType(HttpContext.Current.Cache("Product"), DataSet)
   
    If Update = "No" Then
        If Source Is Nothing Then
            Source = objProductData.LoadProduct()
            HttpContext.Current.Cache("Product") = Source
        Else
            Dim intRows As Integer
            intRows = Source.Tables(0).Rows.Count
            If intRows <> CInt(objProductData.CountProduct()) Then
              HttpContext.Current.Cache.Remove("Product")
              Source = objProductData.LoadProduct()
              HttpContext.Current.Cache("Product") = Source
            End If
        End If
    ElseIf Update = "Yes" Then
        HttpContext.Current.Cache.Remove("Product")
        Source = objProductData.LoadProduct()
        HttpContext.Current.Cache("Product") = Source
    End If
    Return Source
End Function

I min database klasse har jeg denne function der loader dataene op i dataset :

'--- Function der loader alt fra produkt tabel op i dataset.
Public Function LoadProduct()
    Dim objDb As DbClass = New DbClass
    Dim objConn As SqlConnection = objDb.SqlConnect
    Dim objComm As New SqlDataAdapter("Select * From tbl_products", objConn)
    Dim objDS As New DataSet
    objComm.Fill(objDS, "tbl_products")
    objDb.SqlClose()
    Return objDS
End Function

/Websam
Avatar billede snepnet Nybegynder
05. september 2005 - 13:17 #6
jeg synes ikke jeg kan se at valideringsklassen er i spil i den kode...

men bortset fra - kan du så ikke debugge dig igennem, og se hvad der sker - og hvornår det sker?

mvh
Avatar billede websam Nybegynder
05. september 2005 - 13:22 #7
Jeg har prøvet at debugge og det hjælper ikke meget mere der får jeg bare samme fejl som når jeg normalt prøvet at loade siden.

Min validerings klasse er i brug jeg glemte bare at skrive 'Dim objProductData As ProductData = New ProductData' den benyttes i cache functionen :o)

/Websam
Avatar billede snepnet Nybegynder
05. september 2005 - 13:32 #8
du skal sætte nogle breakpoints ind så du kan vandre igennem koden og se hvad der sker.
start med at sætte et break point der hvor du starter noget der ender med at fejle.... så kan du trisse ned igennem koden, så du kan se hvad der foregår, og hvornår det strander.
mvh
Avatar billede websam Nybegynder
05. september 2005 - 13:34 #9
Ja jeg må lige prøve mig frem :o)
Avatar billede snepnet Nybegynder
05. september 2005 - 13:36 #10
jepper
Avatar billede snepnet Nybegynder
07. september 2005 - 16:40 #11
how goes?
mvh
Avatar billede websam Nybegynder
07. september 2005 - 17:15 #12
Har lidt travlt lige nu så jeg vender lige tilbage senere ;o)
Avatar billede websam Nybegynder
25. september 2005 - 18:15 #13
Som du sagde tidligere har det nok en betydning med hensyn til en loop. Jeg benytter en loop da jeg skal slette en hoved kategori samt alle under kategorier i mit produkt katalog.

Men jeg har stadigt svært ved at se hvilken betydning det skulle have da loopen ligger i en function/metode ?

/Websam
Avatar billede snepnet Nybegynder
25. september 2005 - 18:51 #14
Jeg forstår ikke helt hvad du har skrevet her til sidst - sæt et breakpoint på den kodelinie du regner med kører først, og så debug igennem med F11, og se om du rammer noget.

Ellers - hvis du har nogle loops et sted, kan du også starte med at sætte breakpoints der hvor de starter, og hvor de slutter - så vil du kunne se om du kommer igennem dem.

mvh
Avatar billede websam Nybegynder
25. september 2005 - 19:07 #15
Det var bare fordi du skrev at det kunne være pga. en loop i min klasse.

Men jeg prøver mig lige frem med debug ;o)

/Websam
Avatar billede snepnet Nybegynder
25. september 2005 - 19:14 #16
thats the spirit :o)
mvh
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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