Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Visual Basic 2005 Error NullReferenceException was unhandled

Posted on 2008-06-16
5
Medium Priority
?
439 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 2000 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

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in an application. Themes can be made up of a set of elements: skins, style sheets, images, and o…
In real business world data are crucial and sometimes data are shared among different information systems. Hence, an agreeable file transfer protocol need to be established.
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
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…

963 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