的方法做一个总结:
个人数据库是保存在Access中的数据库。其加载方式有两种:通过名字和通过属性加载(也许不只这两种,AE中实现同一功能可以有多种方式)。
A、通过设置属性加载个人数据库。
首先通过IPropertySet接口定义要连接数据库的一些相关属性,在个人数据库中为数据库的路径,例如:
IPropertySet Propset = new PropertySetClass()
Propset.SetProperty("DATABASE",@"D:\test\Ao\data\sh\MapData.mdb" )
当定义完属性并设置属性后就可以进行打开数据库的 *** 作了,在ArcEngine开发中存在IWorkspaceFactory、IFeatureWorkspace、IFeatureClass、IFeatureLayer等几个常用的用于打开和 *** 作数据空间地物的接口。IWorkspaceFactory是一个用于创建和打开工作空间...
空间数据库用ArcEngine *** 作,没问题;关系数据库用ADO.net *** 作,没问题;
问题是 使用AE接口将其当做空间库 *** 作后又将其当做关系库然后使用ado *** 作!混搭是会出问题的!
实际上,AE自己有执行sql语句的功能,不要再用自己的ado访问,统一用ae接口。
如果执行 查询 *** 作,使用IQuerydef接口;
如果执行 删除,修改,插入等无返回值的sql语句,直接ExcuteSQL接口即可。
具体用法再查询。当前你应该做的是用这两个接口,改写你所有的ado处理方法,程序中将移除所有的ado,再看结果如何。
原因:打开空间数据库的工作空间,实际上也打开了数据库连接。混搭 *** 作,可能由于你不了解资源的释放等,产生不可预知的错误,也许逻辑是对的,得不到你想要的结果。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)