Search code examples
c#datetimeenumerator

Render datetime dates from database and put into array with Enumerator


I'm trying to make an availability calendar showing reserved dates and need to render the reserved dates. In my database I've got arivalDate and a Leavingdate. Now what I'm trying to do is:

  • get arivalDate and Leavingdate
  • put the dates between arivalDate and leavingDate in array for all rows in database

Here is my code:

protected void Page_Load(object sender, EventArgs e)
{
    MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbcnx"].ToString());
    string sql = "select * from bookings";
    MySqlCommand cmd = new MySqlCommand(sql, conn);
    conn.Open();

    MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(cmd);
    DataSet dataSet = new DataSet();
    sqlDataAdapter.Fill(dataSet);

    for (int i = 0; i <= dataSet.Tables[0].Rows.Count - 1; i++)
    {
        string arival = (dataSet.Tables[0].Rows[i].ItemArray[1].ToString());
        string leaving = (dataSet.Tables[0].Rows[i].ItemArray[2].ToString());
        string id = (dataSet.Tables[0].Rows[i].ItemArray[0].ToString());

        DateTime dateArive = DateTime.Parse(arival);
        DateTime dateLeave = DateTime.Parse(leaving);

        List<DateTime> datesList = new List<DateTime>();
        for (DateTime evalDate = dateArive; evalDate < dateLeave; evalDate = evalDate.AddDays(1.0))
        {
            datesList.Add(evalDate);
        }
    }
    string testing = "";
    IEnumerator<DateTime> ien = datesList.GetEnumerator();
    while (ien.MoveNext())
    {
        testing += (ien.Current).ToString("dd M yy") + " <br />";
    }

    lbltst.Text = testing;
}

I keep getting errors no matter what I try. Can somebody please help?


Solution

  • You need to declare datesList outside the loop, or move the test enumeration inside the loop