首页 / 浏览问题 / 组件GIS / 问题详情
selection[0].ToRecordset()啥意思
1EXP 2019年10月10日

//图查属性

private void toolStripQueryProperty_Click(object sender, EventArgs e)

{

//获取选择集

Selection[] selection = mapControl1.Map.FindSelection(true);

//判断选择集是否为空

if (selection == null || selection.Length == 0)

{

MessageBox.Show("请选择要查询属性的空间对象");

return;

}

//将选择集转换为记录

Recordset recordset = selection[0].ToRecordset();2 产品入门

SuperMap iObjects .NET 9D 产品入门

14

this.dataGridView1.Columns.Clear();

this.dataGridView1.Rows.Clear();

for (int i = 0; i < recordset.FieldCount; i++)

{

//定义并获得字段名称

String fieldName = recordset.GetFieldInfos()[i].Name;

//将得到的字段名称添加到 dataGridView1 列中

this.dataGridView1.Columns.Add(fieldName, fieldName);

}

//初始化 row

DataGridViewRow row = null;

//根据选中记录的个数,将选中对象的信息添加到 dataGridView1 中显示

while (!recordset.IsEOF)

{

row = new DataGridViewRow();

for (int i = 0; i < recordset.FieldCount; i++)

{

//定义并获得字段值

Object fieldValue = recordset.GetFieldValue(i);

//将字段值添加到 dataGridView1 中对应的位置

DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();

if (fieldValue != null)

{

cell.ValueType = fieldValue.GetType();

cell.Value = fieldValue;

}

row.Cells.Add(cell);

}

this.dataGridView1.Rows.Add(row);

recordset.MoveNext();

}

this.dataGridView1.Update();

recordset.Dispose();

}

//获取选择集

Selection[] selection = mapControl1.Map.FindSelection(true);

//将选择集转换为记录

Recordset recordset = selection[0].ToRecordset();。您好,我在看Iobjects开发帮助的的图查属性这个功能时,这个selection[0]是啥意思?是我选中数据的第一个转换为记录,还是选中数据的全部转换为记录。如果只是选中的第一个变为记录,那么哪一句代码是循环了所有的选择集?

如果是所有选中数据转换为记录集,那么为什么用selection[0]。为什么用0。本人刚学开发。recordset.MoveNext();这个是实现了什么功能?

十分感谢,谢谢!

1个回答

您好,刚开始学建议下载我们组件的完整包,http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=1115这个是链接,里面有范例程序,还有帮助文档api,对于所有接口都有详细的介绍以及使用。你上面说的selection[]它是一个数组对象。mapControl1.Map.FindSelection()表示返回地图中图层选择集的集合,用0表示第一个图层的选择集对象。recordset.MoveNext表示记录集移动到第二个对象,一个记录集可以有很多个对象。

2,432EXP 2019年10月10日
...