访问数据源中的纯属性数据表,得到某一字段的值
supermap中的数据集主要有下面几种类型,经验证纯属性表属于SuperMap.Data..::.DatasetVector类型,其实现过程如下:
1)得到属性表所在的数据源
2)得到属性表的数据集
3)遍历属性表中的记录
4)得到指定字段的最值
5)将最值显示出来
//访问数据集中属性表
//获取属性表
DataTable dt1 = new DataTable();
SuperMap.Data.Datasets objDts = _wspace.Workspace.Datasources["ChinaClimate"].Datasets;
SuperMap.Data.Dataset objDt = objDts["全国省会城市气象数据"];
SuperMap.Data.DatasetVector objDtv = (SuperMap.Data.DatasetVector)objDt;
//转成recordset类型,然后遍历该记录集合得到日期,存入dt1中
SuperMap.Data.Recordset recordset = objDtv.GetRecordset(false, CursorType.Dynamic);
dt1.Columns.Add("日期");
recordset.MoveFirst();
dt1.Rows.Add(recordset.GetFieldValue("日期"));
while (recordset.MoveNext()==true)
{
dt1.Rows.Add(recordset.GetFieldValue("日期"));
}
//得到dt1中日期字段列的最大值和最小值即可
if (dt1.Rows.Count > 0)
{
string maxSV = dt1.AsEnumerable().Select(t => t.Field<string>("日期")).Max();
string minSV = dt1.AsEnumerable().Select(t => t.Field<string>("日期")).Min();
uiLabel1.Text = "从:" + minSV.ToString();
uiLabel2.Text = "至" + maxSV.ToString();
}
其效果如下
注意:这里日期的字段类型应为字符串型