// it always take left ( keep first table all rows) public static DataTable Join(DataTable First, DataTable Second, DataColumn FJC, DataColumn SJC) { return(DataTableUtility.Join(First, Second, new DataColumn[] { FJC }, new DataColumn[] { SJC })); }
public static DataTable Join(DataTable First, DataTable Second, string FJC, string SJC) { return(DataTableUtility.Join(First, Second, new DataColumn[] { First.Columns[FJC] }, new DataColumn[] { Second.Columns[SJC] })); }
public static void GetTabAndGridExternalColumnValue(int gridTabId, int currentGridBlockId, string referenceIds) { if (string.IsNullOrEmpty(referenceIds)) { return; } PdmBlockClrDto dmBlockClrDto = PdmCacheManager.DictBlockCache[currentGridBlockId]; if (dmBlockClrDto.BlockPdmGridDto == null) { return; } bool IsGetAliasname = false; DataTable tabFieldResultDataTable = GetTabDataTable(gridTabId, referenceIds, false, false); // Get Grading Size will call PrepareGetGridDataTable and set DataTable gridcolumnResultDataTable = PLMSGetGridValueHeler.LoadVariousGridColumnValue(gridTabId, currentGridBlockId, referenceIds, false, dmBlockClrDto, false, false, IsGetAliasname); List <string> gridExternalMappingNameList = GetExternalNappingName(gridTabId, currentGridBlockId); string firstReferencecolumn = gridcolumnResultDataTable.Columns[0].ColumnName; gridExternalMappingNameList.Add(firstReferencecolumn); List <string> allCoumns = new List <string>(); foreach (DataColumn column in gridcolumnResultDataTable.Columns) { allCoumns.Add(column.ColumnName); } var needTOremovecolumn = allCoumns.Except(gridExternalMappingNameList); foreach (string needToRemove in needTOremovecolumn) { gridcolumnResultDataTable.Columns.Remove(needToRemove); } DataTable mergeTable = null; if (gridcolumnResultDataTable.Rows.Count > 0) { mergeTable = DataTableUtility.Join(tabFieldResultDataTable, gridcolumnResultDataTable, tabFieldResultDataTable.Columns[0], gridcolumnResultDataTable.Columns[0]); } else { //mergeTable foreach (DataColumn gridColumn in gridcolumnResultDataTable.Columns) { if (!tabFieldResultDataTable.Columns.Contains(gridColumn.ColumnName)) { tabFieldResultDataTable.Columns.Add(gridColumn.ColumnName); } } mergeTable = tabFieldResultDataTable; } CLROutput.SendDataTable(mergeTable); }