Avatar billede disco_keld Nybegynder
04. september 2003 - 09:59 Der er 4 kommentarer

Denne metode skal returnere en string, men der er ingen output?

Hej med jer...

Min metode underneden som skal returnere en String, returnere ikke noget.

Jeg binder outputtet til en datalist kontrol.

Hvad er der galt?

kode:
--------------------------------------------------------

Public Function GetNewsTopics() As String
            Dim oConnection As SqlConnection
            Dim oCommand As SqlCommand
            Dim oDataReader As SqlDataReader
            Dim IsConnection As Boolean = True

            While IsConnection
                Try
                    oConnection = New SqlConnection(DB("TeleLet"))
                    oConnection.Open()
                    oCommand = New SqlCommand
                    With oCommand
                        .CommandText = "spGetNewsTopics"
                        .CommandType = CommandType.StoredProcedure
                        .Connection = oConnection
                        oDataReader = .ExecuteReader(CommandBehavior.CloseConnection)
                    End With

                    Dim output As String
                    While oDataReader.Read
                        output = (oDataReader.GetInt32(0) & ", " & oDataReader.GetString(1))
                    End While

                    Return output
                Catch ex As Exception
                    LogErrorEvent(ex.Message)
                Finally
                    oDataReader.Close()
                End Try
            End While
        End Function

------------------------------------------------------

Mvh

DK
Avatar billede chries Nybegynder
04. september 2003 - 10:03 #1
Du returner ikke noget hvis der sker en exception!
Avatar billede odegaard Nybegynder
04. september 2003 - 10:16 #2
øhm bliver oDataReader.Close() kaldt, når den står efter "return output" ?
Normalt så fanger jeg eventuelle fejl, lukker databasen, og thrower så den samme fejl igen (evt. med en modificeret besked). Dette for netop at fange fejlen i den metode hvor jeg kalder min metode. Det gør det også nemmere at se hvis der går noget galt inde i mine "lukkede" DLL'er.
Avatar billede disco_keld Nybegynder
04. september 2003 - 10:19 #3
>> odegaard vil du ikke smide lidt kode, så jeg kan se hvad du mener?

:-)
Avatar billede disco_keld Nybegynder
04. september 2003 - 10:27 #4
nu ser min kode således ud:

Public Function GetNewsTopics() As String
            Dim oConnection As SqlConnection
            Dim oCommand As SqlCommand
            Dim oDataReader As SqlDataReader
            Dim IsConnection As Boolean = True

            While IsConnection
                Try
                    oConnection = New SqlConnection(DB("TeleLet"))
                    oConnection.Open()
                    oCommand = New SqlCommand
                    With oCommand
                        .CommandText = "spGetNewsTopics"
                        .CommandType = CommandType.StoredProcedure
                        .Connection = oConnection
                        oDataReader = .ExecuteReader(CommandBehavior.CloseConnection)
                    End With

                    IsConnection = False

                    Dim output As String
                    While oDataReader.Read
                        output = (oDataReader.GetInt32(0) & ", " & oDataReader.GetString(1))
                    End While


                    Return output
                    oDataReader.Close()
                Catch ex As Exception
                    LogErrorEvent(ex.Message)
                    Throw ex
                End Try
            End While
        End Function

nu får jeg denne fejl:

Fejl besked:
DataBinder.Eval: 'System.Char' does not contain a property with the name Topic.

min dataliste:

<asp:datalist
                                        id="dlNewsTopics"
                                        runat="server"
                                        repeatcolumns="1"
                                        repeatdirection="Vertical"
                                        repeatlayout="Table"
                                        >
                                        <itemtemplate>
                                            <asp:hyperlink id="lnkNewsTopic" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "Topic")%>' navigateurl='<%# "../../DesktopDefault.aspx?ContentNum=19&Newsid=" & DataBinder.Eval(Container.DataItem, "NewsID")%>'/>   
                                        </itemtemplate>
                                    </asp:datalist>
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