首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

PULL的错误怎么解决

2012-03-06 
PULL的异常如何解决VB.NET codePrivate Sub MyPull(ByVal MyTable As String)ExistTable表中存放PPC本地

PULL的异常如何解决

VB.NET code
Private Sub MyPull(ByVal MyTable As String)'ExistTable表中存放PPC本地数据库的所有表格名称,MyTable为要PULL的表格        Dim rdaNW As New SqlCeRemoteDataAccess        Dim dbEngine As New SqlCeEngine        Dim connDB As New SqlCeConnection(strConnLocal)        Dim cmndDB As New SqlCeCommand("SELECT * FROM ExistTable WHERE TableName='" + MyTable + "'", connDB)        Dim drdrDB As SqlCeDataReader        '判断本地数据库是否存在该表        connDB.Open()        drdrDB = cmndDB.ExecuteReader()        If drdrDB.Read = False Then            MsgBox("该表不存在")'表格不存在,则先在MyTable里插入该表名,然后PULL            With cmndDB                .CommandText = "INSERT ExistTable(TableName) VALUES('" + MyTable + "')"                .ExecuteNonQuery()            End With        Else            MsgBox("表格存在!")'表格存在,则先删除本地表,然后PULL            With cmndDB                .CommandText = "DROP TABLE " + MyTable                .ExecuteNonQuery()            End With        End If        connDB.Close()        Try            With rdaNW                .LocalConnectionString = strConnLocal                .InternetUrl = strURL                .InternetLogin = ""                .InternetPassword = ""                .Pull(MyTable, strSQL, strConnRemote, RdaTrackOption.TrackingOn)            End With            MsgBox("Pull OK!")        Catch exSQL As Exception            MsgBox(exSQL.Message)        Finally            rdaNW.Dispose()        End Try    End Sub


异常的出现: 
1. 检查本地是否有该表,如果没有,则写入表名,如果有,则删除该表。(到这一步的状态果是,ExistTable有Mytable这个名字,但是本地数据库中实际上还没有MyTable),然后执行PULL操作,如果此时由于某种原因(比如网络链接不正常)导致PULL失败,即MyTable未下载到PPC上。程序结束。 

2. 在第一次的基础上,如果再次运行程序就会出现异常了: 
检查本地是否有该表,发现ExistTable有Mytable这个名字,于是误认为存在,试图执行删除操作,结果导致异常。 

曾经尝试,把删除操作放在每一次PULL成功之后进行,发现还是有可能会出现异常的。 

希望有经验的兄弟指教一下。多谢。

[解决办法]


顶!

我也顺便打个广告,本人也有支持MAPINFO的.shp文件的地图的Windows mobile 5.0/6.0手机GIS地图软件,还有PC端的服务软件,可成套出售,可以完成以下功能:
1,通过GPRS上网连接后台服务端程序来实时传输在外工作的数据到后台数据库!
2,可以实时发回PDA的GPS信息,在后台地图上直接定位PDA用户的位置,也可以下发PDA的经纬度信息让PDA用户定位和跟踪其它PDA用户,了解自己与其它PDA的位置关系,起到定位和跟踪的作用!
3,可以发回PDA当前所在地名如在天河城附近等,实现在外面工作就知道在何时何地上班打卡的效果!
4,后台可以对PDA用户进行字管理,可以对在外面工作的PDA用户进行任务下发和任务管理如
PDA号码:13800138000
任务名称:测试线路
任务说明:主要是在天河北路一带的地下管线进行检测!

5,可以对PDA用户需要返回数据的属性进行后台配置,下发与管理如测试线路的属性模板:
//0-编辑属性(可多个) ; 1-下拉属性(可多个) ; 2-选择属性(可多个) ; 3-大文本编辑框(可以没有此属性,但有此属性时只能有一个) ; 4-列表属性(可以没有此属性,但有此属性时只能有一个)(属性0+属性1+属性2/2+属性2%2)<=28
name,名称,0,;beproject,所属项目,0,;type,类型,1,0:小-1:中-2:大;complete,完成,2,;remark,备注,3,;listbox,设备表,4,
6,可以实时上传文件到后台服务器,实时下载后台服务器的文件和实时更新PDA上客户端的系统!
7,可以实时采集和传输图像信息!
跟据您的需要,还可以增加其它功能!



[解决办法]
1.其实就是个逻辑问题,先判断如果有,那么删除。再判断如果没有,那么创建。除非你想保留老的表。


[解决办法]
你在FINALLY当中加上呢?

热点排行