/** * Assume que o result set em IDataReader reader contem na coluna 0 um ID (long), na coluna 1 a designacao (string), * na coluna 2 um valor (long) e, opcionalmente, na coluna 3 um outro valor (long). * * Se existirem mais colunas, estas sao ignoradas. */ protected List<TotalTipo> GetTotais(IDataReader reader) { List<TotalTipo> results = new List<TotalTipo>(); TotalTipo tt; long total = 0; long total_editadas = 0; long total_eliminadas = 0; do { while (reader.Read()) { tt = new TotalTipo(); tt.ID = System.Convert.ToInt64(reader.GetValue(0)); tt.Designacao = reader.GetValue(1).ToString(); tt.Contador = System.Convert.ToInt64(reader.GetValue(2)); // Quarta coluna (se existir) contem o valor de 'Editadas': if (reader.FieldCount > 3) { tt.Contador_Editadas = System.Convert.ToInt64(reader.GetValue(3)); total_editadas += tt.Contador_Editadas; tt.Contador_Eliminadas = System.Convert.ToInt64(reader.GetValue(4)); total_eliminadas += tt.Contador_Eliminadas; } results.Add(tt); total += tt.Contador; } } while (reader.NextResult()); tt = new TotalTipo(); tt.ID = -1; tt.Designacao = "Total"; tt.Contador = total; tt.Contador_Editadas = total_editadas; tt.Contador_Eliminadas = total_eliminadas; results.Add(tt); return results; }
/** * Assume que o result set em IDataReader reader contem na coluna 0 um ID (long), na coluna 1 a designacao (string), * na coluna 2 um valor (long) e, opcionalmente, na coluna 3 um outro valor (long). * * Se existirem mais colunas, estas sao ignoradas. */ protected List <TotalTipo> GetTotais(IDataReader reader) { List <TotalTipo> results = new List <TotalTipo>(); TotalTipo tt; long total = 0; long total_editadas = 0; long total_eliminadas = 0; do { while (reader.Read()) { tt = new TotalTipo(); tt.ID = System.Convert.ToInt64(reader.GetValue(0)); tt.Designacao = reader.GetValue(1).ToString(); tt.Contador = System.Convert.ToInt64(reader.GetValue(2)); // Quarta coluna (se existir) contem o valor de 'Editadas': if (reader.FieldCount > 3) { tt.Contador_Editadas = System.Convert.ToInt64(reader.GetValue(3)); total_editadas += tt.Contador_Editadas; tt.Contador_Eliminadas = System.Convert.ToInt64(reader.GetValue(4)); total_eliminadas += tt.Contador_Eliminadas; } results.Add(tt); total += tt.Contador; } } while (reader.NextResult()); tt = new TotalTipo(); tt.ID = -1; tt.Designacao = "Total"; tt.Contador = total; tt.Contador_Editadas = total_editadas; tt.Contador_Eliminadas = total_eliminadas; results.Add(tt); return(results); }