实现MapQuest 功能中的ADO.NET应用
2007-08-02 13:24
330 查看
最近做一个关于MapQuest的功能模块,首先介绍一下MapQuest,它是一家资深的帮助客户在地图上定位的公司,比如说根据业务需求,在地图上显示我要关注的地点;我的合作伙伴和员工的地点;在指定地区显示所有的超市,银行等等。
我的这个模块需求是,在地图上显示离指定的一个Job地点最近的五个承包商或者技术员工的地点,并用不同的图标显示出来。我想要总结的有几点。
1. 存储员工或者承包商的坐标字段(Longitude, Latitude)有可能为null,所以在通过MapQuest用WebService获取经纬度值后需要存储到数据库,方便以后直接从数据库中读出,而不是调用WebService向MapQuest请求坐标信息。当从数据库Fill进一个DataTable, 名为dtTechnicians, 再将此DataTable引用传入一个GeoCode函数,此函数检查DataTable, 如果DataRow里的Longitude和Latitude 为null,就调用WebService索取坐标值赋值给两个字段。怎么将开始坐标为空的记录保存回数据库呢?如果一次全部将DataTable里的记录update一下显然不是最好的方法,因为有的记录已经有了坐标值。经过思考,发现DataRow有个RowState属性,当用适配器Fill进DataTable时,每个DataRow的RowState为DataRowState.Unchanged,经过GeoCode函数所更改过的DataRow,其RowState为DataRowState.Modified,所以可以遍历DataTable,检查DataRow的RowState,如果是DataRowState.Modified就可以保存到数据库了。
2. 当做好显示指定位置所要的准备工作后, 即拥有一个DataTable,客户还要求只显示150英里以内的位置。我在DataTable里定义了一个Distance字段存储到指定Job的距离, 因此可以用到DataView,因为DataView和DataTable就像数据库里的视图和物理表的关系.
可以这么做:
Dim dv as DataView = dtMap.DefaultView
dv.RowFilter = "Distance < 150"
dv.Sort = "Distance asc"
最后将这个DataView赋值给MapQuest。
总结:
1. DataRow里的RowState很重要, 它是DataAdapter做Update的关键所在。
如果RowState为DataRowState.Added, DataAdapter就用你的更新逻辑向数据库插入记录;
如果RowSate为DataRowState.Deleted,DataAdapter就用你的更新逻辑向数据库删除记录;
如果RowSate为DataRowState.Modified,DataAdapter就用你的更新逻辑向数据库更改记录;
2. DataView经常和DataTable结合使用。
相关文章推荐
- 谁能用jQuery和Ajax做的访问ado.net程序-----跪求各位大侠(有相似的也可以,只要实现的是类似的功能就可以)
- ADO.NET的应用(一)---asp.net中DataGrid控件实现数据绑定
- 如何应用Asp.Net Mvc内建功能(DefaultModelBinder)实现简单类型、复杂类型、集合类型,以及字典类型的自动绑定
- ASP.NET MVC5+MySql使用ASP.NET 身份验证实现用户和角色功能 1 概述 目标:使用MySql数据库,建立一个使用ASP.NET 身份验证的应用,并实现角色功能,身份
- 告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)
- 网站分页功能的实现(Entity Framework和ADO.NET两种综述)
- 告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)
- Asp.net SignalR 应用并实现群聊功能 开源代码
- 【LeanEAP.NET】精益企业应用平台实战----表格批量编辑与Undo/Redo功能实现
- ADO.NET实现XML数据库应用
- Asp.net SignalR应用并实现群聊功能
- Asp.net SignalR 应用并实现群聊功能 开源代码
- 数据移植(利用Ado.Net功能实现)
- Asp.net SignalR 应用并实现群聊功能 开源代码
- iOS 应用实现条形码扫描功能的方法
- ASP.NET水晶报表实现打印功能
- lucene.net 2.9.2 实现索引生成,修改,查询,删除功能
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- 章鱼哥出品——VB.NET 屏幕自适应功能的实现
- asp.net+jQuery应用JSON实现无刷新三级联动实例(转)