arcengine删除要素数据集时,在文件被占用时依然能够被删除
类似catalog里的sde功能,删除要素数据集,关键代码如下: IDatasetName dataName = dsNode.Tag as IDatasetName;
IName name = dataName as IName;
IDataset ds = name.Open() as IDataset;
try
{
ds.Delete();
dsNode.Remove();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
在arcmap中某要素数据集下的要素类正处于编辑状态,用这个方法(ds.Delete();)删除该数据集时,能catch到错误,但这句代码依然能够删除要素数据集。。
arcmap里面,如果要素数据集下的要素类在没有注册的情况下打开,右键数据集能够正常删除;
如果该要素类处于编辑状态,右键要素数据集时删除选项是灰色的,不能使用。
现在想请教一下如何判断该要素数据集是否被程序占用?另外ds.Delete()这个方法在catch到错误的情况下为何还能正常删除。。
尝试用这句代码判断是否被占用:if (wFLockControl.SchemaLockingEnabled),但在调试的时候发现这句代码执行后的结果始终是true。
IName name = dataName as IName;
IDataset ds = name.Open() as IDataset;
try
{
ds.Delete();
dsNode.Remove();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
在arcmap中某要素数据集下的要素类正处于编辑状态,用这个方法(ds.Delete();)删除该数据集时,能catch到错误,但这句代码依然能够删除要素数据集。。
arcmap里面,如果要素数据集下的要素类在没有注册的情况下打开,右键数据集能够正常删除;
如果该要素类处于编辑状态,右键要素数据集时删除选项是灰色的,不能使用。
现在想请教一下如何判断该要素数据集是否被程序占用?另外ds.Delete()这个方法在catch到错误的情况下为何还能正常删除。。
尝试用这句代码判断是否被占用:if (wFLockControl.SchemaLockingEnabled),但在调试的时候发现这句代码执行后的结果始终是true。
1 个回复
朱新颖
赞同来自:
要回复问题请先登录或注册