C#中用DataGridView绑定ArcGIS图层的属性表

本文介绍如何使用 .Net 的 OracleConnection 连接 OracleSDE 数据库,并通过 SQL 语句选择并显示特定图层的数据。文章详细解释了连接配置及避免异常显示的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 
这里以Oracle SDE中的数据为例。

首先,要建立与SDE 数据库的连接,这里不用AE自带的连接接口,使用.Net自带的OracleConnection

这里的Connector是这样的:
Connector = "Data Source=lsgeo;Persist Security Info=True;User ID=sde;Password=sde" 

这里的“Data Source”是安装SDE时的全局数据库名。“User ID”是SDE空间数据库名,“Password”是SDE空间数据库的密码。(就是Catalog里面那个Database Connection中的Spatial Connection的连接信息)。
     空间数据库连接完毕后,就可以选择你要显示的数据了。这里用SQL语句来写,比如你想显示一个名叫Table的图层所有字段的信息,SQL语句可以这样写:
string sql="select * from Table";
其实如果你这样写的话,数据加载到DataGridView上的时候会出错的,因为空间数据图层有个“Shape”字段,是二进制流,所以在DataGridView上显示不出来,并抛出异常。所以在显示数据之前,最好有选择的显示字段,如果字段名里面含有“.”将会抛出SQL语法错误。通常显示一些可编辑的字段:
string sql="select FID,Layer,Code from Table";//这里其实还可以用"where"语句进行有条件的选择

好了,现在SQL语句写好了,再写下如下代码:
//下面的代码把数据写入内存
OracleDataAdapter adapter = new OracleDataAdapter(sql, connection);
DataSet dsTable 
= new DataSet();
adapter.Fill(dsTable);

最后,把数据绑定到DataGridView生:
1dataGridView1.DataSource = dsTable.Tables[0];
2dataGridView1.Columns[0].ReadOnly = true;
3dataGridView1.Show();
4//因为一般情况下,第一列是显示的FID所以不能被编辑
5//最后,用完之后记着:connection.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值