public static void GetTableStructure(IConnectToDB _Connect, DynamicModels.ReportDefinitions thisDefinition, _DynamicOutputProcedures CoreOut, DynamicModels.RootReport CurrentReportSelected) { thisDefinition.theReport = CurrentReportSelected; if (thisDefinition.GetStructure) { if (string.IsNullOrEmpty(thisDefinition.theReport.Source)) { thisDefinition.theStructure = CoreOut.GetTableStruct(_Connect, CurrentReportSelected.ProcedureName, thisDefinition.DynamicColumns); } else { if (!string.IsNullOrEmpty(thisDefinition.DynamicColumns)) { //TODO: Convert to Procedure ER_Query.Parameter_Run SQlin = new ER_Query.Parameter_Run { sqlIn = "select top 0 '-' as rownumb, " + thisDefinition.DynamicColumns + " from " + _Connect.Schema + "." + thisDefinition.theReport.Source + " where 1 = 2", _dbParameters = new List <DBParameters>() }; DataTable thisTableColumns = ER_Query._RUN_PARAMETER_QUERY(_Connect, SQlin); DataColumnCollection DCC = thisTableColumns.Columns; thisDefinition.theStructure = thisTableColumns; } else { //TODO: Convert to Procedure ER_Query.Parameter_Run SQlin = new ER_Query.Parameter_Run { sqlIn = "select ORDINAL_POSITION, COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA = @TABLE_SCHEMA and upper(TABLE_NAME) = upper(@TABLE_NAME) order by ORDINAL_POSITION ASC", _dbParameters = new List <DBParameters> { new DBParameters { ParamName = "TABLE_SCHEMA", MSSqlParamDataType = SqlDbType.VarChar, ParamValue = _Connect.Schema }, new DBParameters { ParamName = "TABLE_NAME", MSSqlParamDataType = SqlDbType.VarChar, ParamValue = thisDefinition.theReport.Source } } }; DataTable thisTableColumns = ER_Query._RUN_PARAMETER_QUERY(_Connect, SQlin); DataColumnCollection DCC = thisTableColumns.Columns; System.Data.DataTable table = new System.Data.DataTable(); DataColumn column; column = new DataColumn(); column.ColumnName = "rownumb"; column.Caption = "rownumb"; table.Columns.Add(column); for (int i = 0; i < thisTableColumns.Rows.Count; i++) { column = new DataColumn(); column.ColumnName = thisTableColumns.Rows[i]["COLUMN_NAME"].ToString(); column.Caption = thisTableColumns.Rows[i]["COLUMN_NAME"].ToString(); table.Columns.Add(column); } thisDefinition.theStructure = table; } } } }