矢量数据的属性值的添加、编辑、删除
/* 以下代码实现的是矢量数据的更新,删除*/
/* 注意可以用store,但是效率比较低,每次都写一下文件,不如一次性flush一下*/
/*首先定义游标,然后.NextFeature() 依次执行,但是注意select产生的游标不能应用于update 和 Insert*/
/*代码比较乱,包含添加、删除、更新三个方面的操作,没有注释掉的是更新操作,查询之前的文章介绍过*/
#region 修改字段的值
IDataset dataset = pFlayerClass as IDataset;
IWorkspace workspace = dataset.Workspace;
IWorkspaceEdit wse = workspace as IWorkspaceEdit;
wse.StartEditing(false);
wse.StartEditOperation();
int proField = pFlayerClass.FindField("SPEEDCLASS");
// null 就是全部都查询不用再新建IQUERY... 了
int cnt = pFlayerClass.FeatureCount(null);
// 要添加数据必须使用 Insert产生的Cursor 不要使用Select生成的Cursor,如下所示
//IFeatureCursor featureCursor = pFlayerClass.Insert(true);
// 要编辑数据就是用Update生成的Cursor
IFeatureCursor featureCursor = pFlayerClass.Update(null,true);
// 如果要添加数据,就使用Buffer 最后flush一下
//IFeatureBuffer featureBuffer = pFlayerClass.CreateFeatureBuffer();
// 以下这两句 写到循环外边
int fieldId = pFlayerClass.FindField("ID");
IFeature f = featureCursor.NextFeature();
int speedId = pFlayerClass.FindField("SPEEDCLASS");
for (int i = 0; i < cnt; i++)
{
string roadID = pFlayerClass.GetFeature(i).get_Value(fieldId).ToString();
int cl = GetSpeedClass(roadID);
//int cl = 2;
f.set_Value(speedId,cl);
// 以下的代码是写入缓存
//featureBuffer.Shape = pFeature.Shape;
//featureBuffer.set_Value(fieldId, roadID);
//featureBuffer.set_Value(speedId, cl);
//IFeature pFeature = pFlayerClass.GetFeature(i);
// 插入一个新的Feature
// featureCursor.InsertFeature(featureBuffer);
featureCursor.UpdateFeature(f);
// 删除一个矢量数据
f.Delete();
f = featureCursor.NextFeature();
}
featureCursor.Flush();
wse.StopEditOperation();
wse.StopEditing(true);
#endregion
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具