public List <ListCompareTable> InportOriginData(DataTable dt, int nNowYear, long lProvinceID)
        {
            List <ListCompareTable> listReturn = new List <ListCompareTable>();

            if (dt != null)
            {
                bool flag = false;
                OriginTableManage       manOrigin    = new OriginTableManage();
                string[]                mainColumns  = { "ZYLBDM", "ZYLBMC" };
                List <Td_zylbdm_Origin> OriginModels = manOrigin.InportSomeRowsOriginTable <Td_zylbdm_Origin>(dt, nNowYear, lProvinceID, mainColumns);
                for (int i = 0; i < OriginModels.Count; i++)
                {
                    long lNowRelationID = OriginModels[i].RelationID;
                    if (lNowRelationID == 0) //原始表中新加入的字段
                    {
                        flag = true;
                        Td_zylbdm zylbObj = IsExistType(OriginModels[i]);
                        if (zylbObj == null) //如果在数据库中不存在,zylbdm表中需要增加该model
                        {
                            string OriginDM = OriginModels[i].DM;
                            while (OriginDM.Length < 2)
                            {
                                OriginDM = "0" + OriginDM;
                            }

                            string    sFirstCode  = GetSubString(OriginDM, 0, 2);
                            string    sSecondCode = GetSubString(OriginDM, 2, 2);
                            string    sThirdCode  = GetSubString(OriginDM, 4, 0);
                            string    sTypeName   = OriginModels[i].MC;
                            long      lNewID      = 0;
                            Td_zylbdm model       = new Td_zylbdm();
                            model.Code      = OriginModels[i].DM;
                            model.Name      = sTypeName;
                            model.JoinNames = model.Name;
                            if (sSecondCode == "") //一级节点
                            {
                                model.ParentIndex = -1;
                                lNewID            = SaveOneFirstTypeNode(model);
                            }
                            else if (sThirdCode == "")
                            {
                                lNewID = SaveOneSecondTypeNode(model, sFirstCode);
                            }
                            else
                            {
                                lNewID = SaveOneThirdTypeNode(model, sSecondCode, sFirstCode);
                            }

                            ListCompareTable oneTable = new ListCompareTable();
                            oneTable.sOldID    = OriginModels[i].DM;
                            oneTable.lNewID    = lNewID;
                            oneTable.lOriginID = OriginModels[i].ID;
                            listReturn.Add(oneTable);
                            //修改原始表中相应的RelationID
                            OriginModels[i].RelationID = lNewID;
                        }
                        else
                        {
                            ListCompareTable oneTable = new ListCompareTable();
                            oneTable.sOldID = OriginModels[i].DM;
                            if (zylbObj.DelFlag)
                            {
                                oneTable.lNewID            = zylbObj.JoinID;
                                OriginModels[i].RelationID = zylbObj.JoinID;
                            }
                            else
                            {
                                oneTable.lNewID            = zylbObj.ID;
                                OriginModels[i].RelationID = zylbObj.ID;
                            }
                            oneTable.lOriginID = OriginModels[i].ID;
                            listReturn.Add(oneTable);
                        }
                    }
                    else
                    {
                        ListCompareTable oneTable = new ListCompareTable();
                        oneTable.sOldID    = OriginModels[i].DM;
                        oneTable.lNewID    = lNowRelationID;
                        oneTable.lOriginID = OriginModels[i].ID;
                        listReturn.Add(oneTable);
                    }
                }
                if (flag)
                {
                    SaveManyRecords(OriginModels);
                }
            }
            return(listReturn);
        }
        public List <ListCompareTable> InportOriginData(DataTable dt, int nYear, long lProvinceID, string[] mainColumns)
        {
            DataTable datatable = ShrinkDataTable(dt, lProvinceID); //先把其他省份的去掉

            System.Data.DataView dv = datatable.DefaultView;
            dv.Sort = "DQDM Asc";
            DataTable dt2 = dv.ToTable(true);

            List <ListCompareTable> listReturn   = new List <ListCompareTable>();
            OriginTableManage       man          = new OriginTableManage();
            List <Td_dqdm_Origin>   OriginModels = man.InportSomeRowsOriginTable <Td_dqdm_Origin>(dt, nYear, lProvinceID, mainColumns);
            List <Td_dqdm>          Models       = GetAllLeafNodes <Td_dqdm>(lProvinceID);
            //TableStatusManage statusManage = new TableStatusManage(); 地区代码,认为每个省份的数据库无重复
            bool flag = true; //记录有无修改

            for (int i = 0; i < OriginModels.Count; i++)
            {
                long lNowRelationID = Convert.ToInt64(OriginModels[i].RelationID);
                if (lNowRelationID == 0) //原始表中新加入的字段
                {
                    flag = false;
                    Td_dqdm dqObj = IsExistRegion(OriginModels[i], Models);
                    if (dqObj == null) //如果区域在数据库中不存在,dqdm表中需要增加该区域
                    {
                        string sFirstCode, sSecondCode, sThirdCode;
                        if ((OriginModels[i].DM.Length >= 2) && (IsNumeric(OriginModels[i].DM)))
                        {
                            sFirstCode = OriginModels[i].DM.Substring(0, 2);
                        }
                        else
                        {
                            sFirstCode = "00";
                        }
                        if ((OriginModels[i].DM.Length >= 4) && (IsNumeric(OriginModels[i].DM)))
                        {
                            sSecondCode = OriginModels[i].DM.Substring(2, 2);
                        }
                        else
                        {
                            sSecondCode = "00";
                        }
                        if ((OriginModels[i].DM.Length >= 6) && (IsNumeric(OriginModels[i].DM)))
                        {
                            sThirdCode = OriginModels[i].DM.Substring(4, 2);
                        }
                        else
                        {
                            sThirdCode = "00";
                        }

                        long    lNewID = 0;
                        Td_dqdm model  = new Td_dqdm();
                        model.Code      = OriginModels[i].DM;
                        model.Name      = OriginModels[i].MC;
                        model.JoinNames = OriginModels[i].MC;

                        if (sThirdCode == "00") //二级节点 (不可能增加一级节点)
                        {
                            model.TheOrder    = Convert.ToInt16(sSecondCode);
                            model.ParentIndex = lProvinceID;
                        }
                        else  //三级节点
                        {
                            string         sParentCode = sFirstCode + sSecondCode + "00";
                            Td_dqdm        nowCity     = null;
                            List <Td_dqdm> listHere    = Models.Where(c => c.Code == sParentCode).ToList();
                            if ((listHere == null) || (listHere.Count == 0)) //二级节点不存在
                            {
                                nowCity             = new Td_dqdm();
                                nowCity.ParentIndex = lProvinceID;
                                nowCity.Code        = sParentCode;
                                nowCity.TheOrder    = Convert.ToInt16(sSecondCode);
                                nowCity.Name        = "市辖区/县";
                                AddOneTreeNode(nowCity);
                            }
                            else
                            {
                                nowCity = listHere[0];
                            }
                            model.TheOrder    = Convert.ToInt16(sThirdCode);
                            model.ParentIndex = nowCity.ID;
                        }
                        lNewID = AddOneTreeNode(model);

                        ListCompareTable oneTable = new ListCompareTable();
                        oneTable.sOldID    = OriginModels[i].DM;
                        oneTable.lNewID    = lNewID;
                        oneTable.lOriginID = OriginModels[i].ID;
                        listReturn.Add(oneTable);
                        OriginModels[i].RelationID = lNewID;
                    }
                    else
                    {
                        string sRegionName = OriginModels[i].MC;
                        if (dqObj.Code == null)
                        {
                            dqObj.Code = OriginModels[i].DM;
                            string[] EditColumn = { "Code" };
                            SaveOneRecord(dqObj, EditColumn);
                        }
                        if (sRegionName != dqObj.Name)
                        {
                            if (!dqObj.JoinNames.Split(CosValue.SPLITOPERATOR1).Contains(sRegionName))
                            {
                                dqObj.JoinNames = dqObj.JoinNames + CosValue.SPLITOPERATOR1 + sRegionName;
                                string[] EditColumn = { "JoinNames" };
                                SaveOneRecord(dqObj, EditColumn);
                            }
                        }
                        ListCompareTable oneTable = new ListCompareTable();
                        oneTable.sOldID = OriginModels[i].DM;
                        if (dqObj.DelFlag)
                        {
                            oneTable.lNewID            = dqObj.JoinID;
                            OriginModels[i].RelationID = dqObj.JoinID;
                        }
                        else
                        {
                            oneTable.lNewID            = dqObj.ID;
                            OriginModels[i].RelationID = dqObj.ID;
                        }
                        oneTable.lOriginID = OriginModels[i].ID;
                        listReturn.Add(oneTable);
                    }
                }
                else
                {
                    ListCompareTable oneTable = new ListCompareTable();
                    oneTable.sOldID    = OriginModels[i].DM;
                    oneTable.lNewID    = lNowRelationID;
                    oneTable.lOriginID = OriginModels[i].ID;
                    listReturn.Add(oneTable);
                }
            }
            if (!flag)
            {
                SaveManyRecords(OriginModels);
            }
            return(listReturn);
        }