I'm trying to get data from the database and put it in a list. Then, i want to create dropdown list with the received data.
The db table:
ID
projectName
The code:
public void ProjectsList()
{
List<ProjectsListClass> ProjectsList=new List<ProjectsListClass>(); //list of projects
ProjectsListClass projectDetails=new ProjectsListClass();//1 project details
//creating session of projects table
using (SqlConnection conn = new SqlConnection(mainDBConn))//connect to the database table
{
SqlCommand sqlProjectsList = new SqlCommand("SELECT * FROM dbo.Projects ORDER BY projectName", conn);
conn.Open();
SqlDataReader rsProjectsList = sqlProjectsList.ExecuteReader();
if (rsProjectsList.HasRows && rsProjectsList.Read())//there is a project, insert into the array
{
projectDetails.ProjectsListProjectID = Convert.ToInt16(rsProjectsList["ID"]);
projectDetails.ProjectsListProjectName = rsProjectsList["projectName"].ToString();
ProjectsList.Add(projectDetails);
}
Session["ProjectsList"] = ProjectsList;
rsProjectsList.Close();
conn.Close();
}
}
and in the other page:
List<ProjectsListClass>projectsArray=new List<ProjectsListClass>();
projectsArray=(List<ProjectsListClass>)Session["ProjectsList"];
foreach(var project in projectsArray)
{
ListItem l = new ListItem(project.ProjectsListProjectID.ToString()
, project.ProjectsListProjectName.ToString()
, true);
projectIDDropDownList.Items.Add(l);
}
i get the error:
Object reference not set to an instance of an object.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 20: foreach(var project in projectsArray) - this one in red
Line 21: { Line 22: ListItem l = new ListItem(project.ProjectsListProjectID.ToString()
What should i do?