Torna al Thread

DataColumn dc = new DataColumn(s); dt.Columns.Add(dc); int contRow=0; //MI CREO UN CONTATORE PER LE RIGHE ESISTENTI //primo ciclo: per ogni mese dell'anno prescelto mi faccio restituire i giorni for (int i = 1; i <= 12; i++) { int dayForMonth = Convert.ToInt32(((new DateTime(Convert.ToInt32(s), i, 1)).AddMonths(1)).AddDays(-1).Day for (int x = 1; x <= dayForMonth; x++) { DateTime ndt2 = new DateTime(Convert.ToInt32(s), i, x); if (Convert.ToInt32(ndt2.DayOfWeek) == 1) {//ECCO I NUOVI CONTROLLI: if (dt.Columns.Count-1==0)// SE NON ESISTONO COLONNE, CREO UNA RIGA { DataRow drw = dt.NewRow(); drw[0] = ndt2.ToString("M"); dt.Rows.Add(drw); } else //ESISTONO COLONNE { if (contRow < dt.Rows.Count) //SE IL NUMERO DI RIGHE è INFERIORE A QUELLE ESISTENTI, AGGIUNGO SOLO I DATI ALLA NUOVA COLONNA { dt.Rows[contRow][dt.Columns.Count - 1] = ndt2.ToString("M"); //dt.Rows.Add(dt.Rows[contRow]); contRow++;//AGGIORNO IL CONTATORE DI RIGHE ESISTENTI: UNA SPECIE DI CURSORE CHE SCENDE NEL DATATABLE } else {//HO SUPERATO IL NUMERO DI RIGHE ESISTENTI: NE DEVO CRERARE UNA NUOVA DataRow drw = dt.NewRow(); drw[dt.Columns.Count - 1] = ndt2.ToString("M"); dt.Rows.Add(drw); //NON MI DEVO PREOCCUPARE DELLE COLONNE CON CELLE VUOTE: RESTERANNO TALI, SENZA ANDARE IN ERRORE } } dt.AcceptChanges(); } } }
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5