public void Run(IReportWriter wtr, IQuiltContextFactory quiltContextFactory) { using var conn = quiltContextFactory.CreateConnection(); conn.Open(); // Get list of tables. // var tableNames = new List <string>(); using (var cmd = new SqlCommand("select name from sys.tables order by name", conn)) { using var rdr = cmd.ExecuteReader(); while (rdr.Read()) { var tableName = rdr.GetString(0); tableNames.Add(tableName); } } // Get record count for each table. // var recordCounts = new Dictionary <string, int>(); foreach (var tableName in tableNames) { #pragma warning disable CA2100 // Review SQL queries for security vulnerabilities using var cmd = new SqlCommand("select count(*) from [" + tableName + "]", conn); using var rdr = cmd.ExecuteReader(); if (rdr.Read()) { var recordCount = rdr.GetInt32(0); recordCounts.Add(tableName, recordCount); } } // Write report. // wtr.DefineColumn("Table Name"); wtr.DefineColumn("Record Count"); foreach (var tableName in tableNames) { wtr.WriteCell(tableName, 1); wtr.WriteCell(recordCounts[tableName].ToString(), 1); } }
protected override void WriteHeading(IReportWriter wtr) { foreach (var column in GroupColumns) { wtr.DefineColumn(column.Name); } foreach (var column in DataColumns) { wtr.DefineColumn(column.Name); } foreach (var column in AggregateColumns) { wtr.DefineColumn(column.Name); } }