【AE】【属性表操作】

//获取表|表字段
    IDisplayTable pDisplayTable = pLayer as IDisplayTable;
    ITable table=pDisplayTable.DisplayTable;
    ITable pTable = pLayer.FeatureClass as ITable;
    //方法一:获取具体某个
        pTable.GetRow(3).get_Value(4);//表的第第三行的第四列的值
    //方法二:批量获取\超快
        IFeatureCursor Cursor = pLayer.FeatureClass.Search(new QueryFilterClass(), false);
        IFeature feature = Cursor.NextFeature();
        IField= feature.get_Value(i);
        feature = Cursor.NextFeature();
    //方法三
        pFeatureLayer as ILayerFields;  
        IField=ILayerFields.get_Field(i);
    //方法四:根据字段名获取字段
        public IField GetFieldByName(IFeatureClass featureClass, String fieldName)
        {
            int fieldIndex = featureClass.FindField(fieldName);
        
            IFields fields = featureClass.Fields;
            IField field = fields.get_Field(fieldIndex);
            return field;
        }

//字段统计
    //Find the selected field in the feature layer
    IFeatureClass featureClass = m_featureLayer.FeatureClass;
    IField field = featureClass.Fields.get_Field(featureClass.FindField(comboBox1.Text));
    
    //Get a feature cursor
    ICursor cursor = (ICursor) m_featureLayer.Search(null, false);
    
    //Create a DataStatistics object and initialize properties
    IDataStatistics dataStatistics = new DataStatisticsClass();
    dataStatistics.Field = field.Name;
    dataStatistics.Cursor = cursor;
    
    //Get the result statistics
    IStatisticsResults statisticsResults = dataStatistics.Statistics;
    
    //Set the values min and max values
    textBox2.Text = statisticsResults.Minimum.ToString();
    textBox3.Text = statisticsResults.Maximum.ToString();
    textBox1.Text = "10";


//属性条件查询
    IQueryFilter queryFilter=new QueryFilterClass();
    queryFilter.SubFields = "NAME, ADDRESS";//只查这几个字段
    queryFilter.WhereClause = "";
    
    pFeatureClass.Search (queryFilter, false);//返回IFeatureCursor对象     
      
//查询
    QueryFilter:WhereClause,SubFields
    ICursor::NextFeature()    
      1. QueryDef:Tables,Evaluate()返回结果集的ICursor可以基于行遍历    
      2. IFeatureLayer.Search()获得IFeatureCursor用于遍历    
      3. IFeatureLayer的IFeatureSelection.SelectFeatures(),SelectionSet//只有IFeatureSelection会高亮显示
//修改行
    IRow dtRow = table.GetRow(j);//获得第i行 465
    DataRow excelRow = excelTable.Rows[i];//获得第i行  234
    dtRow.set_Value(3, excelRow[2]);
    dtRow.set_Value(4, excelRow[3]);
    dtRow.set_Value(5, excelRow[4]);
    dtRow.Store();
    pRow.Delete();  

//添加字段
    IFieldEdit field3 = new FieldClass();
    field3.Name_2 = strFieldName;
    field3.Type_2 = esriFieldType.esriFieldTypeDouble;
    
    int theField = pFeatureLayer.FeatureClass.Fields.FindField(strFieldName);  
    if (theField == -1)  
    {  
        pFeatureLayer.FeatureClass.AddField(field3);  
        MessageBox.Show("字段添加成功!");  
    }  
    else  
    {  
        MessageBox.Show("字段已经存在!");  
    }  

工作空间到字段的类关系 

在讨论地理数据库时,“表”通常意味着“对象类”
 //别忘了释放要素游标对象. Marshal.ReleaseComObject(fCursor);
 
ITable ObjectClass FeatureClass
包含 行 对象 要素
行创建方法 ITable.CreateRow      ITable.CreateRow      IFeatureClass.CreateFeature
支持子类型  假                          真                          真
支持域名    假                          真                          真
必填字段   没有                          对象ID                ObjectID,形状

如果需要将字段添加到现有数据集或从现有数据集中删除,则必须使用IClass接口(或扩展IClass的接口)而不是IFieldsEdit。
IClass接口有以下直接使用字段的方法:AddField、DeleteField、FindField






搜索游标 -检查和编辑行。更新游标 -编辑和删除行。插入游标 - 将新行添加到表中。



//8.列出数据
    //方法 描述
    ListDatasets(字符串通配符,字符串数据集类型) 根据查询字符串和类型返回当前工作空间中数据集的枚举
    ListFeatureClasses(字符串通配符,字符串要素类型,字符串数据集) 根据查询字符串和类型返回当前工作空间或可选数据集中要素类的枚举
    ListRasters(字符串通配符,字符串栅格类型) 根据查询字符串和类型返回当前工作空间中的栅格枚举
    ListTables(字符串通配符,字符串表类型) 根据查询字符串和类型返回当前工作空间中的表的枚举
    ListWorkspaces(字符串通配符,字符串WorkspaceType) 根据查询字符串和类型返回当前工作空间中工作空间的枚举
    
     //方法 键入关键字
    ListDatasets 所有,功能,覆盖范围,RasterCatalog,CAD,VPF,TIN,拓扑
    ListFeatureClasses 所有,点,标签,节点,线,弧,路线,多边形,地区
    ListFields All,SmallInteger,Integer,Single,Double,String,Date,OID,Geometry,BLOB
    ListWorkspaces 所有,覆盖范围,访问,SDE,文件夹
    ListTables 所有,dBASE,INFO
    ListRasters All,ADRG,BIL,BIP,BSQ,BMP,CADRG,CIB,ERS,GIF,GIS,GRID,STACK,IMG,JPG,JP2,LAN,SID,SDE,TIF,RAW,PNG,NTF,DDF,RST, HDF

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值