2017-01-30 6 views
2

Прежде чем я задал этот вопрос, я смотрел на все предлагает сделана SO и взглянул на это (Что такое NullReferenceException, и как это исправить?)система NullReferenceException на записях

У меня есть функция в моем UserControl

управления пользователя:

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") 

Извините, если это что-то глупо это просто, что я не понимаю и как я могу убедиться, Я не получу эту проблему снова?

+0

Где вы инициализировали сервер? –

+0

на web.config @ProGrammer и я тестировал скрипт в aspx, но он работает, но когда я помещаю этот скрипт в функцию и вызываю его из ascx-файла, он дает мне ошибку. – namzaG

+1

Вы скопировали и вставили свой вопрос, чтобы создать новый. Когда вы забыли скопировать ссылку на вопрос _Что такое исключение NullReferenceException и как его исправить? _ Я бы проверял, что 'Server' фактически инициализирован _debugging_ вашего кода, а если нет, загляните в _why_. – Bugs

ответ

2

Это простой вопрос с вопросом. Сервер является собственностью System.Web.UI.Page, который наследует ваш aspx. Я предполагаю, что ваша функция MedewerkerNaam определена вне этого класса страниц aspx, поэтому свойство Server не отображается.

У вас есть два варианта:

  1. Move ваша функция MedewerkerNaam жить внутри класса ASPX, который наследуется от System.Web.UI.Page.

    Ваш код должен затем работать с базой ASPX страницы класса сервера свойство будет видно, или

  2. передать объект сервера в вашу функцию как так ...

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

и когда вы вызываете MedewerkerNaam из вашего класса aspx add, добавьте свойство Server следующим образом:

Public Class your_aspx_class 
    Inherits System.Web.UI.Page 

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

End Class 
+0

Если это проблема с областью действия, возникла ошибка компиляции, говорящая о том, что 'Server' не существует. –

+0

IT WORKED @Joe Stampf СПАСИБО ВАС СПАСИБО !!!!!!!!!!! – namzaG

+0

У меня есть файл с 200 функциями + есть ли способ сделать это, не касаясь функций? Или мне нужно добавить его вручную 1 на 1 – namzaG

Смежные вопросы