Common causes of: Object reference not set to an instance of an object error
Discuss Common causes of: Object reference not set to an instance of an object error in the .NET Development forum on ASP Free. Common causes of: Object reference not set to an instance of an object error .NET Development forum discussing the Microsoft languages including C#, VB.NET, ASP.NET and others. Learn various methods of problem solving unique to the .NET technologies.
ASP Free and Iron Speed Designer are giving away $5,500+ in FREE licenses. Iron Speed's RAD CASE toolset can save up to 80% of your coding time. One free license per week, one perpetual license per month!
Receive the tools necessary to be the rock star of your field. Our 12-month program teaches you the evolving world of multi-channel marketing as well as the complex issues and opportunities found in the industry.
Web development can be a daunting task, even for specialists. There is a lot of information to absorb and a lot of technologies to learn in order to manage a superior website. When trying to learn the ropes, developers need a reliable source to introduce new ideas that can be easily implemented. When working on large projects, even web veterans may run into a technology or an aspect of a technology that they are unfamiliar with.
Posts: 1,522
Time spent in forums: 5 Days 17 m 2 sec
Reputation Power: 12
Common causes of: Object reference not set to an instance of an object error
(mods, you might want to make this a sticky)
Considering the large number of "Object reference not set to an instance of an object" errors abound, I figured its my "public duty" to give the main reasons, and thus... reduce the number of superflous threads created on the matter:
Cause one:
Not declaring variables!
Yes, I know it sounds obvious, but MAKE SURE that you've explicity declared the variable, and don't forget to use the appropriate scope!
One common mistayke is when working with Codebehind Classes, consider:
Public Class PageOne
Inherits System.Web.UI.Page
Dim strHello As String
Sub Page_Load(ByVal e As System.EventArgs) Handles MyBase.Load
strHello = "Hello!"
litOne.Text = strHello
End Sub
End Class
Remember! Codebehinds arn't handled the same way as inline/<script> pages!
You need to declare EVERY control you want to interact with in the codebehind class
...Do this just after the Inherits statement:
Code:
Public Class PageOne
Inherits System.Web.UI.Page
Protected WithEvents litOne As System.Web.UI.WebControls.Literal
...
Personally, I use "Protected WithEvents" as its the most flexible and "protects" the object, feel free to use other scopes and attributes as you see fit.
Cause 2: Bad scoping!
Indeed...
One common cause is this:
Code:
Sub Page_Load(ByVal e As System.EventArgs) Handles MyBase.Load
Private strHello As String
End Sub
Sub Button1_Click(ByVal e As System.EventArgs) Handles Button1.Click
strHello = "Hello!"
End Sub
This won't work because strHello is accessible only by Sub Page_Load
Bad inits/constructs
Remember, some classes have constuctors
Consider DirectoryInfo:
Code:
Sub Page_Load() ....
Dim dirInfo As System.IO.DirectoryInfo
dirInfo.GetDirectory("C:\")
End Sub
In the above example, we've only defined dirInfo *AS* a DirectoryInfo class, we haven't actually created it
So we need to do this instead:
Code:
Sub Page_Load() ....
Dim dirInfo As System.IO.DirectoryInfo
dirInfo = New System.IO.DirectoryInfo("C:\")
End Sub
That should do it....
Remember, ALWAYS refer to the MSDN Library when enquiring about classes and their initilisation (sp?) methods.... why trust some "1337 script kiddie!" site when you've got the official reference at http://www.msdn.com ? Or better yet, get the compiled version on CD, don't need to worry about long download times or the constant "was this article of any use to you?" screen.
HTH
-1337_d00d
(and yes, I'm aware of the "mistayke" thing, it was supposed to be ironic, but clearly the humour is lost on you)
Posts: 31,109
Time spent in forums: 3 Months 3 Weeks 2 Days 20 h 18 m 8 sec
Reputation Power: 2919
very nice job, dude... I see you really got into it, eh?
we already have about 5 stickies in this forum, I'll consult with the others moderators and we'll see if there is room for another one... this might as well be attached to existing sticky tutorial.
anyways, thanks - this would probably going to be very useful information.
Posts: 31,109
Time spent in forums: 3 Months 3 Weeks 2 Days 20 h 18 m 8 sec
Reputation Power: 2919
lol
you didn't flame anyone, and even if you did it was justified as they had non standard code! *shudder*
well, as you see this thread has been stuck already, now let's hope ppl will read it before posting problems of that kind.
Posts: 12
Time spent in forums: 4 h 53 m 48 sec
Reputation Power: 0
Your a pro
Yo dude
You'll probably want to shoot me, but I have this exact error you so passionately talk
about. I have read through your posting but it still hasn't helped me and wonder
if you would mind having a look see. I'm quite a novice in .net but have the coding backround just
need a slight hand.
Posts: 31,109
Time spent in forums: 3 Months 3 Weeks 2 Days 20 h 18 m 8 sec
Reputation Power: 2919
Quote:
Originally Posted by Damnrad24
Yo dude
You'll probably want to shoot me, but I have this exact error you so passionately talk
about. I have read through your posting but it still hasn't helped me and wonder
if you would mind having a look see. I'm quite a novice in .net but have the coding backround just
need a slight hand.
thanks in advance.
post your problem as new thread and we will see if we can help. in your post, give full details aboout what exactly is wrong, along with relevant code causing errors.
Posts: 12
Time spent in forums: 4 h 53 m 48 sec
Reputation Power: 0
Thanks
Quote:
Originally Posted by Shadow Wizard
post your problem as new thread and we will see if we can help. in your post, give full details aboout what exactly is wrong, along with relevant code causing errors.
Will post as a new thread, Look forward to the response! Thank again
Posts: 106
Time spent in forums: 1 h 2 m 22 sec
Reputation Power: 8
Phoenix,
I am truly gratefull for this sticky. I suffered from a cause 3(bad init) for two days before you and your post rescued me. I should have known better. Thanks for getting me out of that mess!
Posts: 1
Time spent in forums: 2 sec
Reputation Power: 0
There is another possible solution. I knew there had to be because I had my application working on other computers, but one of them gave me this error (Windows XP).
.. and subsequently you get the "Object reference ..." error
then the fix is to run (at the command prompt)
aspnet_regiis -i
I don't know why this problem only occurred on one of my machines. Anyway it seems to be a common problem so I thought I'd post my solution as an alternative. I hope it helps someone.