Solved

Visual Basic 2005 Error NullReferenceException was unhandled

Posted on 2008-06-16
5
409 Views
Last Modified: 2013-11-26
I am getting the above error message and can't find a solution. I have attached the message box that pops up and the code snippet where I am getting the error. Specifically when I step through I get the error at Dim root As XmlNode = xmlDoc("FindHalfProductsResponse")("Products")("Product")("ItemArray")
'iterate through the records

            Do While myReader.Read()

            myReader(2).ToString()
 
 

            'get the ISBN

            'example to get a value from the data reader -  myReader(0).ToString() 

            'you will need to replace it with the correct field value

            ISBN = "val" 'obtained from myReader
 

            'Server URL - with the ISBN read from the database

            Dim serverURL As String = "http://open.api.ebay.com/shopping?callname=FindHalfProducts&responseencoding=XML&appid=[myid]&version=565&ProductID.type=ISBN&ProductID.Value=" + ISBN + "&IncludeSelector=Items"
 

            'Create a new HttpWebRequest object

            Dim request As HttpWebRequest = DirectCast(WebRequest.Create(serverURL), HttpWebRequest)
 

            'Get a HTTPWeb Response with HTTP GET

            Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
 

            'Put the data into a UTF8 encoded byte array, since we deal with UTF8 characters

            Dim encoding As New UTF8Encoding()
 

            'Get the StreamReader

            Dim strReader As StreamReader = New StreamReader(response.GetResponseStream(), encoding)
 

            'This is the xml string - Alternately you can convert it to an XML object like XMLDoc and parse it

            'Dim result As String = strReader.ReadToEnd()
 

            Dim xmlDoc As New XmlDocument()

            xmlDoc.LoadXml(strReader.ReadToEnd())

            strReader.Close()
 

            Dim root As XmlNode = xmlDoc("FindHalfProductsResponse")("Products")("Product")("ItemArray")
 

            For Each node As XmlNode In root.ChildNodes

                Dim ItemID As String = node("ItemID").InnerText

                Dim Seller As String = node("StoreName").InnerText

                Dim Feedback As String = node("FeedbackScore").InnerText

                Dim price As String = node("CurrentPrice").InnerText

                Dim condition As String = node("HalfItemCondition").InnerText

Open in new window

Bookit-Error-Msg.jpg
0
Comment
Question by:bpfsr
  • 3
  • 2
5 Comments
 
LVL 10

Expert Comment

by:margajet24
ID: 21799413

// have you check if [request.GetResponse()] returns a value?
            Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)

 // if it does not, then strReader will be null
            Dim strReader As StreamReader = New StreamReader(response.GetResponseStream(), encoding)

 // then strReader.ReadToEnd() will not be valid because no refence was created
// resulting to NullReferenceException
            'Dim result As String = strReader.ReadToEnd()
0
 

Author Comment

by:bpfsr
ID: 21799420
How would I check that? I do know when I step through it does not stop there...
0
 

Author Comment

by:bpfsr
ID: 21799439
I think we are thinking along the same lines, I'm just not sure how to check the problem. I had thought the problem would be somewhere in this part:

'get the records from the database
        Dim myReader As SqlDataReader = cmd.ExecuteReader()

        'variable to store the ISBN from the database
        Dim ISBN As String

        'iterate through the records
            Do While myReader.Read()
            myReader(2).ToString()

Because I figured if it was getting the records correctly from the reader, it would be returning either no value or data that didn't make sense to it. If I read you correctly you are basically saying the same thing, no?
0
 

Author Comment

by:bpfsr
ID: 21799481
If it helps here is the exception detail:

System.NullReferenceException was unhandled
  Message="Object reference not set to an instance of an object."
  Source="FindHalfProducts_HTTP_GET"
  StackTrace:
       at FindHalfProducts_HTTP_GET.Module1.Main()
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
0
 
LVL 10

Accepted Solution

by:
margajet24 earned 500 total points
ID: 21799561
trace which variable is Nothing before it is used in another process

or just add try-catch then debug per line.. the last line that will be executed before the catch will help you determine the cause of the error

try
{
//codes
}
catch ( NullReferenceException e )
{
MessageBox.Show(e.Message);
}
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now