Solved

Object reference not set to an instance of an object.

Posted on 2007-03-30
2
354 Views
Last Modified: 2008-02-01
I have a webpage with which I'm loading data into a listbox called "ClientListBox".  The page loads without a problem when I open a Client that does not have any items that are supposed to be selected in the ClientListBox.  If there is supposed to be a client Selected, then I get the error:  Object reference not set to an instance of an object.

I've listed all of the code that this function involves and highlighted the line that gives me the error.  I'm hoping there's a simple solution that I've somehow overlooked doing something.  Thank you!


void Page_LoadComplete(object sender, EventArgs e)
    {
        if (CurrentProject != null)
        {
            SelectProjectClients(CurrentProject.Id);
        }
    }

protected void SelectProjectClients(int projectId)
    {
        ClientListBox.DataBind();
        List<string> clientList = Project.GetProjectClients(projectId);

        foreach (string client in clientList)
        {
                           ListItem item = ClientList.Items.FindByValue(client);
 ERROR----------> item.Selected = true;
        }
    }


    //Project.GetProjectClients
        public static List<string> GetProjectClients(int Id)
        {
            if (Id <= DefaultValues.GetProjectIdMinValue())
                return (new List<string>());

            DataAccess DALLayer = DataAccessHelper.GetDataAccess();
            return (DALLayer.GetProjectClients(Id));
        }


//DALLayer.GetProjectClients
        public override List<string> GetProjectClients(int Id)
        {
            if (Id <= 0)
                throw (new ArgumentOutOfRangeException("Id"));

            SqlCommand sqlCmd = new SqlCommand();
            AddParamToSQLCmd(sqlCmd, "@ProjectId", SqlDbType.Int, 0, ParameterDirection.Input, Id);
            SetCommandType(sqlCmd, CommandType.StoredProcedure, SP_PROJECT_GETPROJECTCLIENTS);
            List<string> clientList = new List<string>();
            TExecuteReaderCmd<string>(sqlCmd, TGenerateClientListFromReader<string>, ref clientList);
            return clientList;
        }

private const string SP_PROJECT_GETPROJECTCLIENTS = "GetProjectClients";

//storedprocedure
CREATE  PROCEDURE [dbo].[GetProjectClients]
      @ProjectId INT
AS

SELECT
 Clients.Name
From
 aspnet_starterkits_ProjectClients
INNER JOIN Clients ON aspnet_starterkits_ProjectClients.ClientId = Clients.ClientId
WHERE
 ProjectId=@ProjectId
SET QUOTED_IDENTIFIER OFF
0
Comment
Question by:deloused
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 14

Accepted Solution

by:
steveberzins earned 500 total points
ID: 18827382
a few problems.

-you're attempting to look for a value that there is no way it's gonna be there from what I can tell
-you need to select the client id, and name in the select (in the proc), and tell the list which column is going to be the value source, and which will be the display value source
-even if the value is there, and should be found, you should code defensively, and check to make sure an object is not null before accessing/setting a property on it.
if (null != item) item.Selected = true;
0
 

Author Comment

by:deloused
ID: 18827432
Aggh!! woo!  

Sorry, your reply gave me the solution....thank you.  I forgot to mention that the ClientListBox has a sql data source which gets ALL of the clients in the database table.  Of course I had set the DataTextField to display"Name" DataValue Field save "ClientId".  I changed the value field to "Name" and now it works beautifully.  

thank you!
0

Featured Post

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

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

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

627 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