如何设计行政区划程序?
Author:水如烟
总目录:行政区划数据方案设计
上一篇,行政区划程序的设计(九)
从程序设计开始到完成了RegionalCodeLibary的编写,基本上对整个方案做到了“心中有数”。“虚”的把握了,现在要做的是把“虚”变成“实”。
在项目中,“虚”与“实”也逐步得到体现。基础类也向我们需要的实体类转化。
一般来说,到了应用层,数据类型需要要具体化,既是约束的需要,也是服务的必要。展现给用户的,信息是明确的,意思是明了的。
“虚”“实”转换的任务,就落在RegionalCodeCenter项目上。
而“实”的定义,实体类的定义,若是符合可移植范畴的,在RegionCodeCommon上定义。
下面,看看有哪些信息需要在RegionCodeCommon上明确下来。
项目组织:
数据集有三个:
一是数据库所提供的信息,dsRegionalCode.xsd,
二是用户提供给数据库更新用的信息,dsUpdateDatabase.xsd,
三是用户从网上获取的信息,dsNetDownload.xsd,
上面数据集在特定功能实现时的处理:
下载的数据,因为用时较长,考虑保存到本地,NetDownloadLocalDataSet.vb
NamespaceDatabase
PublicClassNetDownloadLocalDataSet
PrivategDataSetAsNewDataSet
PublicReadOnlyPropertyDataSet()AsDataSet
Get
ReturngDataSet
EndGet
EndProperty
PublicSubClear()
gDataSet.Clear()
EndSub
'''<summary>
'''添加待更新到数据库的表
'''</summary>
'''<paramname="table">表</param>
'''<remarks>表的名称需为版本日期</remarks>
PublicSubAdd(ByValtableAsdsNetDownload.RegionalCodeDataTable)
AddUpdateTable(table)
EndSub
PublicSubAdd(ByValtableAsDataTable)
DimtmpTableAsNewdsNetDownload.RegionalCodeDataTable
WithtmpTable
.Load(table.CreateDataReader)
.TableName=table.TableName
EndWith
AddUpdateTable(tmpTable)
EndSub
PrivateSubAddUpdateTable(ByValtableAsdsNetDownload.RegionalCodeDataTable)
DimmTableAsdsNetDownload.RegionalCodeDataTable
IfMe.DataSet.Tables.Contains(table.TableName)Then
mTable=CType(Me.DataSet.Tables(table.TableName),dsNetDownload.RegionalCodeDataTable)
mTable.Clear()
Else
mTable=NewdsNetDownload.RegionalCodeDataTable
mTable.TableName=table.TableName
Me.DataSet.Tables.Add(mTable)
EndIf
WithmTable
.Merge(table)
.AcceptChanges()
EndWith
EndSub
PublicSubLoadDatasFromLocal(ByValfileAsString)
DimtmpDataSetAsNewDataSet
tmpDataSet.ReadXml(file)
ForEachtableAsDataTableIntmpDataSet.Tables
Me.Add(table)
Next
WithtmpDataSet
.Clear()
.Dispose()
EndWith
EndSub
PublicSubWriteDatasToLocal(ByValfileAsString)
DimmWriteStreamAsNewIO.StreamWriter(file,False)
Me.DataSet.WriteXml(mWriteStream)
WithmWriteStream
.Close()
.Dispose()
EndWith
EndSub
EndClass
EndNamespace
PublicClassNetDownloadLocalDataSet
PrivategDataSetAsNewDataSet
PublicReadOnlyPropertyDataSet()AsDataSet
Get
ReturngDataSet
EndGet
EndProperty
PublicSubClear()
gDataSet.Clear()
EndSub
'''<summary>
'''添加待更新到数据库的表
'''</summary>
'''<paramname="table">表</param>
'''<remarks>表的名称需为版本日期</remarks>
PublicSubAdd(ByValtableAsdsNetDownload.RegionalCodeDataTable)
AddUpdateTable(table)
EndSub
PublicSubAdd(ByValtableAsDataTable)
DimtmpTableAsNewdsNetDownload.RegionalCodeDataTable
WithtmpTable
.Load(table.CreateDataReader)
.TableName=table.TableName
EndWith
AddUpdateTable(tmpTable)
EndSub
PrivateSubAddUpdateTable(ByValtableAsdsNetDownload.RegionalCodeDataTable)
DimmTableAsdsNetDownload.RegionalCodeDataTable
IfMe.DataSet.Tables.Contains(table.TableName)Then
mTable=CType(Me.DataSet.Tables(table.TableName),dsNetDownload.RegionalCodeDataTable)
mTable.Clear()
Else
mTable=NewdsNetDownload.RegionalCodeDataTable
mTable.TableName=table.TableName
Me.DataSet.Tables.Add(mTable)
EndIf
WithmTable
.Merge(table)
.AcceptChanges()
EndWith
EndSub
PublicSubLoadDatasFromLocal(ByValfileAsString)
DimtmpDataSetAsNewDataSet
tmpDataSet.ReadXml(file)
ForEachtableAsDataTableIntmpDataSet.Tables
Me.Add(table)
Next
WithtmpDataSet
.Clear()
.Dispose()
EndWith
EndSub
PublicSubWriteDatasToLocal(ByValfileAsString)
DimmWriteStreamAsNewIO.StreamWriter(file,False)
Me.DataSet.WriteXml(mWriteStream)
WithmWriteStream
.Close()
.Dispose()
EndWith
EndSub
EndClass
EndNamespace
本文地址:http://www.45fan.com/dnjc/66952.html