private void AddRows(ref DataTableExporter csv, string table, ref List <string> seentables, string where, bool alphaHeaderCols, int depth = 0) { if (seentables.Contains(table)) { return; } //get data var tableValues = RunQuery(table, @where); //insert var i = 0; foreach (var r in tableValues) { if (depth == 0) { seentables = new List <string>(); } seentables.Add(table); csv.AddRow(r, table); var ts = GetParsedForeignKeyTables(r.Keys.ToList(), table); //recurse with these tables foreach (var t in ts) { var key = t.KeyName; var val = r[key]; var lwhere = $" where {key} = {val}"; AddRows(ref csv, t.TableName, ref seentables, lwhere, alphaHeaderCols, depth + 1); } if (depth == 0) { //finalise csv.AddPage(); } i++; } }
private void AddRows(ref DataTableExporter csv, string table, ref List<string> seentables, string where, bool alphaHeaderCols, int depth = 0) { if (seentables.Contains(table)) return; //get data var tableValues = RunQuery(table, @where); //insert var i = 0; foreach (var r in tableValues) { if (depth == 0) { seentables = new List<string>(); } seentables.Add(table); csv.AddRow(r, table); var ts = GetParsedForeignKeyTables(r.Keys.ToList(), table); //recurse with these tables foreach (var t in ts) { var key = t.KeyName; var val = r[key]; var lwhere = $" where {key} = {val}"; AddRows(ref csv, t.TableName, ref seentables, lwhere, alphaHeaderCols, depth + 1); } if (depth == 0) { //finalise csv.AddPage(); } i++; } }