来自:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=28859&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D6

利用IFDOToADOConnection 对属性表浏览 速度很快哦!

题外话:呵呵,最近在做个项目,对于使用的每个Shp文件都要浏览其属性表,可我使用的每个文件里的Feature都达到了五位数以上,用一般的方法浏览其属性表实在是太长时间了,于是乎想到了这个接口,在9.2中对这个接口和ADO的连接进行了比较详细的说明,但是没有说明怎么和像DataGridView和DataGrid这样的控件进行绑定的问题,对于初学者是个比较头疼的问题,这里我给大家两个个例子仅供参考,呵呵。
一、浏览属性的一般方法(要是文件里的Feature数目不多,这个方法还是可行的,控件采用的是ListView)
            try
            {
                if (layer != null)
                {
                    ILayer ipLyr = GetLayerByName(layer.Name);
                    IFeatureLayer ipFLayer = ipLyr as IFeatureLayer;
                    ITable ipTable = ipFLayer as ITable;
                    int count = ipTable.RowCount(null);
                    if (count == 0)
                    {
                        MessageBoxEx.Show("该图层无实体数据可查询");
                        return;
                    }
                    frmShowFeatures frmShowF = new frmShowFeatures(ipLyr, mapControl);
                    frmShowF.lblFeaCount.Text = "该图层共有" + count.ToString() + "个要素";
                    string strGeoType = ReturnGeoType(ipTable.GetRow(0).Fields.get_Field(1));

for (int j = 0; j < ipTable.Fields.FieldCount; j++)
                    {
                        frmShowF.listViewEx1.Columns.Add(ipTable.Fields.get_Field(j).Name);
                    }

for (int i = 0; i < count; i++)
                    {
                        frmShowF.listViewEx1.Items.Add(ipTable.GetRow(i).OID.ToString());
                        frmShowF.listViewEx1.Items.SubItems.Add(strGeoType);
                        for (int j = 2; j < ipTable.Fields.FieldCount; j++)
                        {
                            frmShowF.listViewEx1.Items
.SubItems.Add(ipTable.GetRow(i).get_Value(j).ToString());
                        }
                    }
                    frmShowF.Owner = this;
                    frmShowF.TopLevel = true;
                    frmShowF.Show();

//Marshal.ReleaseComObject(ipLyr);
                    Marshal.ReleaseComObject(ipFLayer);
                    Marshal.ReleaseComObject(ipTable);

}
            }
            catch (Exception ee)
            {
                MessageBoxEx.Show(ee.Message);
            }

二、采用IFDOToADOConnection 绑定数据到DataGriView( 这个方法其实有个问题,对于有空间属性的Shp文件来说,DataGridView是显示不了Shape这个字段的,不过我们要看的是属性信息,可以把这个字段剔除,如果谁有方法能够解决这个问题,请告知我吧,谢谢哦)
ILayer ipLyr = GetLayerByName(layer.Name);
            IFeatureLayer ipFLayer = ipLyr as IFeatureLayer;
            ITable ipTable = ipFLayer as ITable;
            int count = ipTable.RowCount(null);
            if (count == 0)
            {
                MessageBoxEx.Show("该图层无实体数据可查询");
                return;
            }

frmShowFeatures frmShowF = new frmShowFeatures(ipLyr, mapControl);
            frmShowF.lblFeaCount.Text = "该图层共有" + count.ToString() + "个要素";

IFeatureClass ipFClass = ipFLayer.FeatureClass;
            IDataset ipDataset = ipFClass as IDataset;
            IWorkspace ipWS = ipDataset.Workspace;
IFDOToADOConnection fdoToadoConnection = new FdoAdoConnectionClass();
            //ADODB.Connection adoConnection = (ADODB.Connection)fdoToadoConnection.CreateADOConnection(ipWS);
            ADODB.Connection adoConnection = new ADODB.Connection();

fdoToadoConnection.Connect(ipWS, adoConnection);
            ADODB.Recordset adoRecordSet = new ADODB.Recordset();
            adoRecordSet.Open("Select FID,Area,x,y from " + layer.Name, adoConnection, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic, 0);

OleDbDataAdapter custDA = new OleDbDataAdapter();
            DataTable dtTerritories = new DataTable("Territories");
            custDA.Fill(dtTerritories, adoRecordSet);
            dataGridView1.DataSource = dtTerritories;

adoConnection.Close();
            adoRecordSet.Close();
            adoConnection = null;
            adoRecordSet = null;

C# arcengine 属性快速浏览相关推荐

  1. ArcGIS ArcSDE将数据注册或取消注册为版本快速浏览

    摘要:ArcGIS ArcSDE将数据注册或取消注册为版本快速浏览.可将 ArcSDE 地理数据库中的数据集注册为版本但不将编辑内容移动到基表.注册为版本并将编辑内容移动到基表,或者不注册为版本.默认 ...

  2. 1、excel常用技能(数据分列、数据快速浏览、转置、选择性粘贴运算、绘制对角线、单元格内换行、插入注解文字或图片)

    (1)将同一列中的数据分为不同类型的数据列 选中需要分列的数据单元格,选择工具栏中的"数据.分列.分隔符号.下一步.选择分隔符号(本例中是选中空格).下一步.完成". (2)将姓和 ...

  3. 【模渲大师预设】——W10系统关闭安全卫士教程和属性快速设置

    --W10系统关闭安全卫士教程和属性快速设置 众所周知.改图是几乎被所有人默认的设计行业的普遍现象,就好像不该图的方案就不是好方案.而改图也有再收费和免费以及各种改图的规矩(先不谈这个).那么作图.改 ...

  4. 计算机画图软件技巧,Win7系统自带画图工具快速浏览图片的技巧

    Ghost Win7系统中的自带的画图功能其实非常好用,但是却被大部分用户忽略,尤其是在 win7旗舰版系统 中其界面和功能比其它系统又得到了进一步的提升,能在空白绘图区域或在现有图片上创建绘图.利用 ...

  5. java ee cdi_Java EE CDI限定词:快速浏览

    java ee cdi 在上下文和依赖注入(CDI)中, 限定符是类型安全和松散耦合的主体. 为什么? 没有CDI,我们将以类似于下面的方式注入Java EE组件 注意:这实际上不会编译,只是假设的代 ...

  6. Java EE CDI限定词:快速浏览

    在上下文和依赖注入(CDI)中, 限定符是类型安全和松散耦合的主体. 为什么? 没有CDI,我们将以类似于下面的方式注入Java EE组件 注意:这实际上不会编译,只是假设的代码片段 例子1 例子2 ...

  7. 你的第一杯Web 2.0 —— 快速浏览jQuery、Spring MVC和XStream/Jettison

    不再有页面刷新:使用jQuery 相关厂商内容 免费迷你书下载:Flex入门指南--PHP开发者 Flash Builder 4 Beta和FlexUnit下的测试驱动开发 下载Flex 4 SDK, ...

  8. 如何优雅地在Ubuntu上快速浏览并安装Google字体

    如果您正在寻找适合Linux的体面字体查找器应用程序,那么您只需查看"Font Finder"即可.Font Finder是一款适用于Linux的免费开源应用程序,可让您从大型Go ...

  9. Linux 介绍快速浏览

    Linux 介绍 内核 库: .so 共享对象,windows:dll 动态链接库 应用程序 Linux的基本原则: 1.由目的单一的小程序组成:组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避 ...

最新文章

  1. Mysql主从同步延迟问题及解决方案
  2. linux 下screen命令
  3. VS Code识别编辑规范,ESlint规则,VS Code保存去掉自动加分号、逗号、双引号
  4. 为什么说 Flink + AI 值得期待?
  5. 关于FPGA的一些你必须知道的概念
  6. node+koa2+mysql搭建博客后台
  7. R语言seqm_R语言seq()函数用法
  8. leetcode590. N叉树的后序遍历
  9. ICCV 2019 | 视频综合理解:行为识别、场景识别以及视频综述
  10. hbuilder制作简单网页_企业信息化网站+营销服务之电子商务网站制作流程
  11. appian php,aha2mao
  12. 华为机试HJ37:统计每个月兔子的总数(斐波那契数列)
  13. arm与linux些许问题,arm-linux中遇到的问题
  14. 第二十二周微职位puppet
  15. 常见input输入框 点击 发光白色外阴影 focus
  16. UEFI应用与编程--Dump ALC662 Verb Table
  17. 「吕本富」交易的四个阶段
  18. redis.clients.jedis.exceptions.JedisDataException
  19. js 校验手机号码格式
  20. oracle外部表 查重,问题解决中对问题的外部表征和内部表征

热门文章

  1. html分列代码,科学网—EXCEL 分列 (TextToColumns) 的C#代码 - 丁祥欢的博文
  2. Mac下显示网页全屏快捷键
  3. 高端投影仪有哪些品牌,当贝X3激光投影仪市占比达53.7%
  4. Android 快应用
  5. mysql timediff函数极限值
  6. 《跨社交网络的隐私图片分享框架》EI
  7. 特种设备制造许可证多少钱
  8. 当发现以前的自己是个傻逼时,该如何面对以后的人生
  9. 三种安卓模拟器的安装和比较
  10. Eclipse创建javaWeb项目工程