private static bool CompareColumn(System.Data.DataColumnCollection dcA, System.Data.DataColumnCollection dcB) { if (dcA.Count == dcB.Count) { foreach (DataColumn dc in dcA) { //找相同字段名称 if (dcB.IndexOf(dc.ColumnName) > -1) { //测试数据类型 if (dc.DataType != dcB[dcB.IndexOf(dc.ColumnName)].DataType) { return(false); } } else { return(false); } } return(true); } else { return(false); } }
/// <summary> /// Builds the column name to index map. /// </summary> /// <param name="dlCols">The dl cols.</param> /// <param name="dtCols">The dt cols.</param> /// <param name="defs">Defs to use</param> /// <returns></returns> // ReSharper disable ParameterTypeCanBeEnumerable.Local private IDictionary<int, string> BuildColumnNameToIndexMap(IEnumerable<Dev2Column> dlCols, DataColumnCollection dtCols, IList<IDev2Definition> defs) // ReSharper restore ParameterTypeCanBeEnumerable.Local { Dictionary<int, string> result = new Dictionary<int, string>(); foreach(var dlC in dlCols) { var idx = dtCols.IndexOf(dlC.ColumnName); if(idx != -1) { result.Add(idx, dlC.ColumnName); } } if(result.Count == 0 && defs != null) { // use positional adjustment foreach(var def in defs) { var idx = dtCols.IndexOf(def.Name); if(idx != -1) { result.Add(idx, def.Name); } } } return result; }