asp.net - 记录集上的系统 nullreferenceException

标签 asp.net vb.net user-controls

在我问这个问题之前,我研究了 SO 提出的所有建议,并研究了这个问题(什么是 NullReferenceException,以及如何修复它?)

我的用户控件中有一个函数

用户控制:

Function MedewerkerNaam(Medewerker as integer, Meisjesnaam as boolean) 
    MedewerkerNaam = "Onbekend"
    If IIsNumeric(Medewerker) = True Then
        rs = Server.CreateObject("ADODB.Recordset")
        rs.open ("SELECT Medewerkers.Medewerkers_Voornaams_AchternaamVoorvoegsel, Medewerkers.Medewerkers_Achternaam, Medewerkers.Medewerkers_MeisjesnaamVoorvoegsel, Medewerkers.Medewerkers_Meisjesnaam FROM Medewerkers WHERE Medewerkers.Medewerkers_ID = 0" & int(Medewerker), strCon)
        If NOT rs.EOF Then
            MedewerkerNaam = rs("Medewerkers_Voornaam") & " " & rs("Medewerkers_AchternaamVoorvoegsel") & " " & rs("Medewerkers_Achternaam")
            If Meisjesnaam = True AND rs("Medewerkers_Meisjesnaam") <> "" Then MedewerkerNaam = MedewerkerNaam & " - " & rs("Medewerkers_MeisjesnaamVoorvoegsel") & " " & rs("Medewerkers_Meisjesnaam")
        End If
        rs.Close
         rs = nothing
    End If
End Function

在我的 webform.aspx 中:

 <%dim deneme as new basic%>

 this is a testttt : <%=deneme.MedewerkerNaam(10,false)%>

为什么我会收到错误:

system.nullreferenceexception object reference not set to an instance of an object

错误来自的行:

 rs = Server.CreateObject("ADODB.Recordset") 

抱歉,如果这是一些愚蠢的事情,那只是我不明白它,我怎样才能确保我不会再次遇到这个问题?

最佳答案

这是一个简单的范围问题。 Server 是您的 aspx 继承的 System.Web.UI.Page 的属性。我猜测您的函数 MedewerkerNaam 是在此 aspx 页面类之外定义的,因此 Server 属性不可见。

您有两个选择:

  1. 将函数 MedewerkerNaam 移至继承自 System.Web.UI.Page 的 aspx 类内部。

    然后,您的代码应该可以从基本 aspx 页面类“服务器”开始工作 属性将可见,或者

  2. 将服务器对象传递到您的函数中,如下所示...

    Function MedewerkerNaam(Medewerker as integer, Meisjesnaam as boolean, Server As System.Web.HttpServerUtility) 
        ...
    End Function
    

当您从 aspx 类调用 MedewerkerNaam 时,添加包含 Server 属性,如下所示:

Public Class your_aspx_class
    Inherits System.Web.UI.Page

    Sub your_method(...)
        ...
        something = MedewerkerNaam(someint, somebool, Server)
        ...
    End Sub

End Class

关于asp.net - 记录集上的系统 nullreferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41939808/

相关文章:

vb.net - 使用vb.net代码更改ListView的列标题名称

xml - 最佳实践(读取外部数据)

asp.net-mvc - 在 ASP.NET MVC 中实现用户控件的最佳方法是什么?

用于构建用户界面元素的 Java/Groovy 类自描述

asp.net - Visual Studio 2008 - 无法命中断点

c# - ASP.NET RouteValueDictionary 包含带键 "RouteModels"的条目

asp.net - 从asp.net中的repeater控件获取数据绑定(bind)值

wpf - 当内容适合窗口时,如何在wpf中隐藏滚动条?

wpf - (WPF MVVM)如何将用户控件从 ViewModel 中的集合添加到 View

html - 并行表单提交和ajax调用