问题描述
VB.NET写的检查网络数据库升级信息的程序,程序连接网络数据库,把查询过程放在独立线程里面获取不到数据,不独立线程却可以查询到数据,请问这是怎么回事,怎么解决?'查询数据库是否成功True成功Falsh不成功Sharedupdate_sqlAsBoolean'线程状态PublicmyThread_StateAsBoolean'独立线程更新DimmyThreadAsThreading.Thread'检查数据库更新(返回升级信息列表)PublicFunctionGetUpdate()AsList(OfString)TryDimmysqlclassAsNewMysqlClass'升级信息DimupdataAsNewList(OfString)'ID(最大ID)DimmaxidAsInteger=mysqlclass.GetString("max(id)","selectmax(id)from`update`")'升级版本DimupversionAsString=mysqlclass.GetString("Version","SELECT`update`.VersionFROM`update`WHEREID="&maxid&"")'添加到列表中updata.Add(maxid)updata.Add(upversion)Returnupdata'查询成功CatchexAsExceptionEndTryEndFunction'判断升级PublicSubUpdate_Main()'升级信息Dimupdata_listAsNewList(OfString)updata_list=GetUpdate()'获取数据库数据'判断数据库查询是否成功Ifupdata_list.Count<>0Then'数据库查询成功update_sql=True'旧版本Dimversion_oldAsString=My.Application.Info.Version.ToString'新版本Dimversion_newAsString=updata_list.Item(1)'//升级判断Ifversion_old=version_newThen'不用升级update_need=FalseElse'需要升级update_need=TrueEndIfElse'数据库查询失败update_sql=FalseEndIf'关闭线程myThread.Abort()'线程状态myThread_State=FalseEndSub'启动检查更新(数据库)PublicSubGetUpdate_Start()myThread=NewThreading.Thread(AddressOfUpdate_Main)myThread.Start()'线程状态myThread_State=TrueEndSub