DataTable myTable = GetData(); //your custom function DataTable dtParentPath = Utils.DataTable.GetParentPath(myTable, 8, "ID", "PID");
public static System.Data.DataTable GetParentPath(System.Data.DataTable pdtSource, int pIDValue, string pIDColumn, string pPIDColumn) { System.Data.DataTable dtResult = pdtSource.Clone(); pdtSource.PrimaryKey = new DataColumn[] { pdtSource.Columns[pIDColumn] }; DataRow drCurrent = pdtSource.Rows.Find(pIDValue); dtResult.ImportRow(drCurrent); int PID = drCurrent.IsNull(pPIDColumn) ? 0 : (int)drCurrent[pPIDColumn]; while (PID > 0) { DataRow drParent = pdtSource.Rows.Find(PID); dtResult.ImportRow(drParent); PID = drParent.IsNull(pPIDColumn) ? 0 : (int)drParent[pPIDColumn]; } System.Data.DataTable dtResultSortFromTop = dtResult.Clone(); for (int r = dtResult.Rows.Count - 1; r >= 0; r--) { dtResultSortFromTop.ImportRow(dtResult.Rows[r]); } return dtResultSortFromTop; }
If you have a computer, you are managing links
Manylink allows you to :