Пример #1
0
        private void toolStripButton8_Click(object sender, EventArgs e)
        {
            if (toolStripTextBox1.Text.Length == 0)
            {
                MessageBox.Show("查询信息不能为空");
                return;
            }
            Int32 layerCount = mapControl1.Map.Layers.Count;

            if (layerCount == 0)
            {
                MessageBox.Show("请先打开一个矢量数据集!");
                return;
            }
            string dl = toolStripComboBox1.SelectedItem.ToString();
            string nf = toolStripComboBox2.SelectedItem.ToString();
            string year;

            if (nf == "2000")
            {
                year = "00";
            }
            else
            {
                year = "09";
            }
            string         tj             = toolStripTextBox1.Text;
            string         sql            = dl + year + tj;
            QueryParameter queryParameter = new QueryParameter();

            queryParameter.AttributeFilter = sql;
            queryParameter.CursorType      = CursorType.Static;
            Boolean       hasGeometry = false;
            DatasetVector dataset     = SampleRun.workspace1.Datasources[0].Datasets["盘锦行政区划"] as DatasetVector;
            Recordset     recordset   = dataset.Query(queryParameter);

            if (recordset.RecordCount > 0)
            {
                hasGeometry = true;
            }
            Selection selection = SampleRun.mapControl1.Map.Layers[0].Selection;

            selection.FromRecordset(recordset);
            recordset.Dispose();
            if (!hasGeometry)
            {
                MessageBox.Show("没有符合查询条件的结果或查询条件有误,请重新确认后查询!");
            }
            queryParameter.Dispose();
            mapControl1.Refresh();
            hasGeometry = false;
        }
Пример #2
0
        private void buttonX1_Click(object sender, EventArgs e)
        {
            if (textBoxX1.Text.Length == 0)
            {
                MessageBox.Show("查询信息不能为空");
                return;
            }
            Int32 layerCount = SampleRun.mapControl1.Map.Layers.Count;

            if (layerCount == 0)
            {
                MessageBox.Show("请先打开一个矢量数据集!");
                return;
            }
            QueryParameter queryParameter = new QueryParameter();

            queryParameter.AttributeFilter = textBoxX1.Text;
            queryParameter.CursorType      = CursorType.Static;
            Boolean hasGeometry = false;

            foreach (Layer layer in SampleRun.mapControl1.Map.Layers)
            {
                DatasetVector dataset = layer.Dataset as DatasetVector;
                if (dataset == null)
                {
                    continue;
                }
                Recordset recordset = dataset.Query(queryParameter);
                if (recordset.RecordCount > 0)
                {
                    hasGeometry = true;
                }
                Selection selection = layer.Selection;
                selection.FromRecordset(recordset);
                recordset.Dispose();
            }
            if (!hasGeometry)
            {
                MessageBox.Show("没有符合查询条件的结果或查询条件有误,请重新确认后查询!");
            }
            queryParameter.Dispose();
            SampleRun.mapControl1.Refresh();
            hasGeometry = false;
            this.Close();
        }
Пример #3
0
        private void buttonX1_Click(object sender, EventArgs e)
        {
            if (textBoxX1.Text.Length == 0)
            {
                MessageBox.Show("查询信息不能为空");
                return;
            }
            Int32 layerCount = SampleRun.mapControl1.Map.Layers.Count;

            if (layerCount == 0)
            {
                MessageBox.Show("请先打开一个矢量数据集!");
                return;
            }
            string         fh             = comboBoxEx3.SelectedItem.ToString();
            string         tx             = textBoxX1.Text.ToString();
            string         sql            = tc + fh + tx;
            QueryParameter queryParameter = new QueryParameter();

            queryParameter.AttributeFilter = sql;
            queryParameter.CursorType      = CursorType.Static;

            Boolean       hasGeometry = false;
            DatasetVector dataset     = SampleRun.mapControl1.Map.Layers[nm].Dataset as DatasetVector;
            Recordset     recordset   = dataset.Query(queryParameter);

            if (recordset.RecordCount > 0)
            {
                hasGeometry = true;
            }
            Selection selection = SampleRun.mapControl1.Map.Layers[nm].Selection;

            selection.FromRecordset(recordset);
            recordset.Dispose();
            if (!hasGeometry)
            {
                MessageBox.Show("没有符合查询条件的结果或查询条件有误,请重新确认后查询!");
            }
            queryParameter.Dispose();
            SampleRun.mapControl1.Refresh();
            hasGeometry = false;
            this.Close();
        }
Пример #4
0
        private void toolStripSQLQuery_Click(object sender, EventArgs e)
        {
            //判断toolStripTextBox1的输入内容是否为空
            if (toolStripTextBox1.Text.Length == 0)
            {
                MessageBox.Show("查询信息不能为空");
                return;
            }

            //定义图层个数
            Int32 layerCount = mapControl1.Map.Layers.Count;

            //判断当前地图窗口中是否有打开的图层
            if (layerCount == 0)
            {
                MessageBox.Show("请先打开一个矢量数据集!");
                return;
            }

            //定义查询条件信息;
            QueryParameter queryParameter = new QueryParameter();

            queryParameter.AttributeFilter = toolStripTextBox1.Text;
            queryParameter.CursorType      = CursorType.Static;

            Boolean hasGeometry = false;

            //遍历每一个图层,实现多图层查询
            foreach (Layer layer in mapControl1.Map.Layers)
            {
                //得到矢量数据集并强制转换为矢量数据集类型
                DatasetVector dataset = layer.Dataset as DatasetVector;

                if (dataset == null)
                {
                    continue;
                }
                //通过查询条件对矢量数据集进行查询,从数据集中查询出属性数据,
                Recordset recordset = dataset.Query(queryParameter);
                //判断是否有查询结果
                if (recordset.RecordCount > 0)
                {
                    hasGeometry = true;
                }

                //把查询得到的数据加入到选择集中(使其高亮显示)
                Selection selection = layer.Selection;
                selection.FromRecordset(recordset);
                recordset.Dispose();
            }
            //没有查询结果,弹出提示
            if (!hasGeometry)
            {
                MessageBox.Show("没有符合查询条件的结果或查询条件有误,请重新确认后查询!");
            }

            //当可创建对象使用完毕后,使用Dispose方法来释放所占用的内部资源。
            queryParameter.Dispose();

            //刷新地图窗口显示
            mapControl1.Refresh();
            hasGeometry = false;
        }