Avatar billede brodersen Nybegynder
25. marts 2004 - 19:32 Der er 1 kommentar

Underligt probleme med webcontrols og DataBind()

Har det problem at min side giver fejlen "Exception Details: System.NullReferenceException: Object reference not set to an instance of an object." til functionerne ved pilene i følgende syntax: (repNews1 er id'et på en repeater-control!)

<%@ Page Language="VB" Trace="true" %>
<%@ Register TagPrefix="inc" TagName="leftside" Src="include/leftside.ascx" %>
<%@ Register TagPrefix="inc" TagName="rightside" Src="include/rightside.ascx" %>
<%@ Register TagPrefix="inc" TagName="topbar" Src="include/topbar.ascx" %>
<%@ Register TagPrefix="inc" TagName="footer" Src="include/footer.ascx" %>
<%@ Register TagPrefix="inc" TagName="head" Src="include/head.ascx" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="MysqlAccess" %>
<%@ import Namespace="ConvertFunctions" %>
<script runat="server">

    Public cdt as new CDateTime

    Sub Page_Load(Sender As Object, e As eventargs)

            dim dc as New DataColletor, ds As New DataSet

            If not Page.IsPostBack Then
                    --> dc.FillRepeater(repNews1,"Select id, topicid, headline, shortcontent, datotid From news Order By datotid Desc Limit 0,10")
                    --> dc.FillRepeater(repNews2,"Select id, headline, datotid From news Order By datotid Desc Limit 10,10")
                    --> dc.FillRepeater(repArt,"Select id, headline, shortcontent, datotid From articles Order By datotid Desc Limit 0,4")
            End If
    End Sub

</script>


Kildekoden til objektet DataColletor ses her:
Imports System
Imports System.Data
Imports System.Data.Odbc
Imports System.Xml
Imports System.Web.UI.Webcontrols

Namespace MysqlAccess

    Public Class DataColletor
        Dim strDSN As String = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=xxxx.xxxx.dk; DATABASE=xxxxx; UID=xxxxx; PWD=xxxxxxxxxx;"
        Dim objConn As New OdbcConnection(strDSN)

        Public Sub New()

        End Sub

        Public Function CreateDataSet(strTable As String, strSQL As String) As DataSet
            Dim objCmd As New OdbcDataAdapter(strSQL, objConn)
            Dim ds As New DataSet()

            Try
                objCmd.Fill(ds, strTable)
            Catch
                'Hvad der skal gøres når databasen ikke svare
            End Try

            Return ds
        End Function

        Public Function AddTable(ds As DataSet, strTable As String, strSQL As String) As DataSet
            Dim objCmd As New OdbcDataAdapter(strSQL, objConn)

            Try
                objCmd.Fill(ds, strTable)
            Catch
                'Hvad der skal gøres når databasen ikke svare
            End Try

            Return ds
        End Function

        Public Sub FillRepeater(objRep As Repeater, strSQL As String)
            Dim objCmd As New OdbcCommand(strSQL, objConn), intRowCount As Integer = 0

            Dim objReader As OdbcDataReader

            Try
                objConn.Open()
                objReader = objCmd.ExecuteReader()
            Catch
                'Hvad der skal gøres når databasen ikke svare
            End try

            objRep.DataSource = objReader
            objRep.DataBind()

            objReader.Close
            objConn.Close()
        End Sub

        Public Function CreateDataView(strSQL As String) As DataView
            Dim objCmd As New OdbcDataAdapter(strSQL, objConn), ds As New DataSet()

            Try
                objCmd.Fill(ds, "tbl")
            Catch
                'Hvad der skal gøres når databasen ikke svare
            End Try

            Dim dv As New DataView(ds.Tables("tbl"))

            Return dv
        End Function
    End Class

End Namespace

IsPostBack hjælper ikke på problemet! Tidligere er der stillet spørgsmålstegn ved, om siden har nået at indlæse repeaterne før kode bliver udført, men hvordan lægger man koden efter at repeaterne er indlæst?

Håber der er nogen der kan komme med en løsning!
Avatar billede dj_uncas Nybegynder
03. juni 2005 - 00:19 #1
Er du sikker på du har en repeater med det præcise id på siden? Det bplejer nemlig at være den slags fejl man får når kontrollen ikke eksisterer.
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