• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1255
  • Last Modified:

FindByValue() error? Object - Object reference not set to an instance of an object.

Ok,
  I've been coding for the past few days without a hitch and then all of a sudden I run across this problem.
I have a drop down list that gets populated with a dataset that is returned from my business tier.

I've debugged this thing for 5 hours and I still cant figure it out. I've tested the dataset to make sure that it gets populated. I've checked to make sure that the page will load properly if I just bind the Dataset to the Drop Down List. Everything works fine when I'm loading the Dataset, binding it to the Drop Down list, but when I try to do a dropdownlist.items.findbyvalue("12345")   (where 12345 is a product # in the drop down list) I get a: "Object reference not set to an instance of an object.".

I've tried hardcoding the value (that I KNOW for a fact is in the DropDownList), I"ve tried dynamically setting it through the Ds, I've tried weird looping options. I've even tried removing the DropDownList and replacing i with a listbox. But again, my dreams and aspirations are cursed by this darn error.

Here is the code i'm using:

        Dim DS As New DataSet()
        Dim DS2 As New DataSet()
        Dim itemNumb As String

        m_bus = New business()

        DS = m_bus.ReturnAvailableItems()
        DS2 = m_bus.ReturnCurrentFeaturedItems()

        ddlFeat1.DataSource = DS
        ddlFeat1.DataTextField = "ITEMDESC"
        ddlFeat1.DataValueField = "item_number"
        ddlFeat1.DataBind()

        itemNumb = DS2.Tables(0).Rows(0)("item_number")
        ddlFeat1.Items.FindByValue(DS2.Tables(0).Rows(0)("item_number")).Selected = True

The last line is where i get the error.

Does anyone see what might be causing this?
0
sneidig
Asked:
sneidig
  • 3
  • 3
1 Solution
 
ihenryCommented:
you can do this to avoid the error,

If Not IsDbNull(itemNumb)
   If ddlFeat1.Items.Count > 0 Then
      ddlFeat1.Items.FindByValue(itemNumb).Selected = True
   End If
End If
0
 
sneidigAuthor Commented:
I know that the ddlFeat1 is getting populated. I know that the ItemNumb is populated.

And i still get the error. That seems to be my issue.

Thanks again.
0
 
ihenryCommented:
Or that might because there's no ddlFeat1.Items.FindByValue(itemNumb) found.

Try this to check if item with value equal itemNumb exists.

Dim ListItem item As ListItem = ddlFeat1.Items.FindByValue(itemNumb)
If Not IsNull( item)
   item.Selected = True
End If
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
sneidigAuthor Commented:
it says the object is null.

So check it out though...

I comment out the ".findbyvalue()" and just let the page load.

The page then loads up all three DropDownLists perfectly.

If i look at the source, the data is found in there.

OH jeez... i have no idea...
0
 
ihenryCommented:

Right click on the browser and view its source code. Do you see value there?
0
 
sneidigAuthor Commented:
I started doing a trace ... and I found my problem (your code helped me thinka bout it in a different way so I'll reward you the points).

The problem was that the item numbers in the DB are stored as Varchar(20). When i'd get the data from one table it would return an item number that looked like this "11355" and then the other tablle (which was what the DDL was bound to) looked like this "11355          "   It had a ton of white space.

I trimmed it in SQL Server and blammo, it works.

Thanks for the help though.

Now if i could only get these last 6 hours back!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now