예제 #1
0
        /// <summary>
        /// 保存地块信息
        /// </summary>
        /// <param name="dataList"></param>
        /// <returns></returns>
        public bool SaveGisData(Gis_Data <Gis_Dk> dataList)
        {
            if (dataList == null)
            {
                return(true);
            }

            ArrayList strSql = new ArrayList();
            string    tmpSql = string.Empty;
            string    gisId  = dataList.GisId;
            string    dkId   = string.Empty;

            Dictionary <string, string> delGisId = new Dictionary <string, string>();

            delGisId.Add("GisId", gisId);

            strSql.Add(SqlBuilder.BuildDeleteSql <Gis_Data <Gis_Dk> >(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql <Gis_Dk>(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql <Gis_Jzd>(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql <Gis_Dltb>(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql <Gis_Xzdw>(delGisId));

            //// Gis主表
            strSql.Add(SqlBuilder.BuildInsertSql(dataList));
            //// Gis地块
            foreach (Gis_Dk dk in dataList.DkList)
            {
                dkId     = Guid.NewGuid().ToString();
                dk.GisId = gisId;
                dk.DkId  = dkId;
                strSql.Add(SqlBuilder.BuildInsertSql(dk));
                ////界址点
                foreach (Gis_Jzqy jzqy in dk.RingList)
                {
                    foreach (Gis_Jzd jzd in jzqy.PointList)
                    {
                        jzd.GisId = gisId;
                        jzd.DkId  = dkId;
                        jzd.Dkqh  = jzqy.GeoID;
                        jzd.XH    = jzd.GeoID;
                        strSql.Add(SqlBuilder.BuildInsertSql(jzd));
                    }
                }
                ////地类图斑
                foreach (Gis_Dltb tb in dk.DLTBList)
                {
                    tb.GisId = gisId;
                    tb.DkId  = dkId;
                    strSql.Add(SqlBuilder.BuildInsertSql(tb));
                }
                ////线状地物
                foreach (Gis_Xzdw dw in dk.XZDWList)
                {
                    dw.GisId = gisId;
                    dw.DkId  = dkId;
                    strSql.Add(SqlBuilder.BuildInsertSql(dw));
                }
            }
            return(OracleHelper.ExecuteCommand(strSql));
        }
예제 #2
0
        /// <summary>
        /// 保存地块信息
        /// </summary>
        /// <param name="dataList"></param>
        /// <returns></returns>
        public bool SaveGisData(Gis_Data<Gis_Dk> dataList)
        {
            if (dataList == null) return true;

            ArrayList strSql = new ArrayList();
            string tmpSql = string.Empty;
            string gisId = dataList.GisId;
            string dkId = string.Empty;

            Dictionary<string, string> delGisId = new Dictionary<string, string>();
            delGisId.Add("GisId", gisId);

            strSql.Add(SqlBuilder.BuildDeleteSql<Gis_Data<Gis_Dk>>(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql<Gis_Dk>(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql<Gis_Jzd>(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql<Gis_Dltb>(delGisId));
            strSql.Add(SqlBuilder.BuildDeleteSql<Gis_Xzdw>(delGisId));

            //// Gis主表
            strSql.Add(SqlBuilder.BuildInsertSql(dataList));
            //// Gis地块
            foreach (Gis_Dk dk in dataList.DkList)
            {
                dkId = Guid.NewGuid().ToString();
                dk.GisId = gisId;
                dk.DkId = dkId;
                strSql.Add(SqlBuilder.BuildInsertSql(dk));
                ////界址点
                foreach (Gis_Jzqy jzqy in dk.RingList)
                {
                    foreach (Gis_Jzd jzd in jzqy.PointList)
                    {
                        jzd.GisId = gisId;
                        jzd.DkId = dkId;
                        jzd.Dkqh = jzqy.GeoID;
                        jzd.XH = jzd.GeoID;
                        strSql.Add(SqlBuilder.BuildInsertSql(jzd));
                    }
                }
                ////地类图斑
                foreach (Gis_Dltb tb in dk.DLTBList)
                {
                    tb.GisId = gisId;
                    tb.DkId = dkId;
                    strSql.Add(SqlBuilder.BuildInsertSql(tb));
                }
                ////线状地物
                foreach (Gis_Xzdw dw in dk.XZDWList)
                {
                    dw.GisId = gisId;
                    dw.DkId = dkId;
                    strSql.Add(SqlBuilder.BuildInsertSql(dw));
                }
            }
            return OracleHelper.ExecuteCommand(strSql);
        }
예제 #3
0
        private Gis_Data <Gis_Dk> getGisdata(string strSql, string conStr, bool allData)
        {
            Gis_Data <Gis_Dk> dataList = null;
            OracleDbOperation oracleDb = new OracleDbOperation(conStr);
            DataTable         dt       = oracleDb.ExecuteDataTable(strSql);

            if (dt.Rows.Count == 1)
            {
                dataList = (Gis_Data <Gis_Dk>) new DataTableOperation().ConvertFromDataRowToEntity(dt.Rows[0], typeof(Gis_Data <Gis_Dk>));

                strSql = "select * from gis_dk where gisId = " + dataList.GisId;

                dt = oracleDb.ExecuteDataTable(strSql);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Gis_Dk dk = (Gis_Dk) new DataTableOperation().ConvertFromDataRowToEntity(dt.Rows[i], typeof(Gis_Dk));
                    dk.GeoID = i;

                    ////界址点
                    strSql = "select * from gis_jzd where gisid = '{0}' and dkid = '{1}' order by dkqh,xh ";
                    strSql = string.Format(strSql, dataList.GisId, dk.DkId);
                    DataTable dtJzd = oracleDb.ExecuteDataTable(strSql);

                    string   dkqh = string.Empty;
                    Gis_Jzqy jzqy = null;
                    for (int j = 0; j < dtJzd.Rows.Count; j++)
                    {
                        if ((dtJzd.Rows[j]["dkqh"].ToString() != dkqh && jzqy != null) || j == dtJzd.Rows.Count - 1)
                        {
                            dk.RingList.Add(jzqy);
                        }
                        if (dtJzd.Rows[j]["dkqh"].ToString() != dkqh)
                        {
                            jzqy       = new Gis_Jzqy();
                            jzqy.GeoID = int.Parse(dtJzd.Rows[j]["dkqh"].ToString());
                        }
                        Gis_Jzd jzd = (Gis_Jzd) new DataTableOperation().ConvertFromDataRowToEntity(dtJzd.Rows[j], typeof(Gis_Jzd));
                        jzd.GeoID = jzd.XH;
                        jzqy.PointList.Add(jzd);

                        dkqh = dtJzd.Rows[j]["dkqh"].ToString();
                    }
                    if (allData)
                    {
                        ////地类图斑
                        strSql = "select * from gis_dltb where gisId = {0} and dkId = '{1}'";
                        strSql = string.Format(strSql, dataList.GisId, dk.DkId);
                        DataTable dtDltb = oracleDb.ExecuteDataTable(strSql);
                        for (int j = 0; j < dtDltb.Rows.Count; j++)
                        {
                            Gis_Dltb dltb = (Gis_Dltb) new DataTableOperation().ConvertFromDataRowToEntity(dtDltb.Rows[j], typeof(Gis_Dltb));
                            dk.DLTBList.Add(dltb);
                        }

                        ////线状地物
                        strSql = "select * from gis_xzdw where gisId = {0} and dkId = '{1}'";
                        strSql = string.Format(strSql, dataList.GisId, dk.DkId);
                        DataTable dtXzdw = oracleDb.ExecuteDataTable(strSql);
                        for (int j = 0; j < dtXzdw.Rows.Count; j++)
                        {
                            Gis_Xzdw xzdw = (Gis_Xzdw) new DataTableOperation().ConvertFromDataRowToEntity(dtXzdw.Rows[j], typeof(Gis_Xzdw));
                            dk.XZDWList.Add(xzdw);
                        }
                    }
                    dataList.DkList.Add(dk);
                }
            }
            return(dataList);
        }