Click here to Skip to main content
15,741,947 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:

I have a calendar control and displaying due dates and project name. My only problem now, is when I have multiple projects assigned to one date when I click on the project name it populates data of the last record. Below is my code, any help will be appreciated.
Thanks

protected void Calender1_DayRender(object source, DayRenderEventArgs e)
{
DateTime dates;
DataTable dt = Get_Event();
Literal l = new Literal();
Label lb = new Label();



string events;

if (dt.Rows.Count > 0)
{

for (int i = 0; i < dt.Rows.Count; i++)
{
dates = (Convert.ToDateTime(dt.Rows[i]["to_date(a.PROJECT_DUE,'MM/DD/YYYY')"]));
events = (Convert.ToString(dt.Rows[i]["PROJECT_NAME"]));

if (e.Day.Date == dates)
{

e.Cell.Controls.Add(lb);
e.Day.IsSelectable = true;

e.Cell.BackColor = System.Drawing.Color.Aqua;
e.Cell.ForeColor = System.Drawing.Color.BlueViolet;

e.Cell.Controls.Add(new LiteralControl("<br/><a href="/KB/answers/edit_project.aspx"?PROJECT_DUE=" + dates.ToString("MM/dd/yyyy") +"'>" + events + "</a><br/>"));

}

}

}


}
myConnection.Close();

}


public DataTable Get_Event()
{
DataTable dt = new DataTable();
OracleConnection myConnection = new OracleConnection(ConfigurationManager.AppSettings["DSN"]);


myConnection.Open();
OracleCommand myCommand = new OracleCommand("SELECT to_date(a.PROJECT_DUE,'MM/DD/YYYY'), a.PROJECT_NAME, a.UPDATED_COMMENT FROM NEW_PROJECTS a WHERE upper(a.ASSIGNED_TO_ID) = '" + Session["UserName"].ToString() + "'or lower(a.ASSIGNED_TO_ID) = '" + Session["UserName"].ToString() + "' or upper(a.REPORTS_TO_ID) = '" + Session["UserName"].ToString() + "'or lower(a.REPORTS_TO_ID) = '" + Session["UserName"].ToString() + "'and a.proj_status = 'Active'", myConnection);
OracleDataAdapter da = new OracleDataAdapter(myCommand);
da.Fill(dt);

}

protected void LoadData()
{
string dates;
dates = Request.QueryString["PROJECT_DUE"].ToString();
Project_Due.Text = ("" + dates);


OracleConnection myConnection = new OracleConnection(ConfigurationManager.AppSettings["DSN"]);
OracleCommand myCommand = new OracleCommand("SELECT PROJECT_NAME, PROJECT_DUE, REQUESTED_MANAGER, PROJ_DESCRIPTION, PROJ_STATUS, ASSIGNED_TO, PRIORITY_LEVEL FROM NEW_PROJECTS WHERE PROJECT_DUE = '" + dates + "'", myConnection);

myConnection.Open();
OracleDataReader dr = myCommand.ExecuteReader();;

while (dr.Read())
{

Project_Due.Text = (string)dr["Project_Due"];
Project_Name.Text = dr["Project_Name"].ToString();

Requested_Manager.Text= (string)dr["Requested_Manager"];
Proj_Description.Text = (string)dr["Proj_Description"];
Proj_Status.SelectedValue = (string)dr["Proj_Status"];
ASSIGNED_TO.SelectedValue = (string)dr["Assigned_To"];
/*ASSIGNED_TO1.SelectedValue = (string)dr["Assigned_To1"];
ASSIGNED_TO2.SelectedValue = (string)dr["Assigned_To2"];
ASSIGNED_TO3.SelectedValue = (string)dr["Assigned_To3"];
ASSIGNED_TO4.SelectedValue = (string)dr["Assigned_To4"];
ASSIGNED_TO5.SelectedValue = (string)dr["Assigned_To5"];
ASSIGNED_TO6.SelectedValue = (string)dr["Assigned_To6"];
ASSIGNED_TO7.SelectedValue = (string)dr["Assigned_To7"];
ASSIGNED_TO8.SelectedValue = (string)dr["Assigned_To8"];
ASSIGNED_TO9.SelectedValue = (string)dr["Assigned_To9"];*/
Priority_Level.SelectedValue = (string)dr["Priority_Level"];
}


myConnection.Close();

}
Posted

1 solution

Hi Laila2009

you didn't close your datareader . Close the datareader properly and check it out.

Thanks & Regards
Prady
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900