Author:水如烟
总目录:行政区划数据方案设计
虽然前面分析了好多,提到了好些关键处,可真到写代码时,还是免不了会忽视过去。
刚才测试了昨晚的代码,这里出了问题:
For Each table As DataTable In ds.Tables
UpdateDatabaseByDataTable(table)
Next
End Sub
应该是:
' 确保按版本由旧至新顺序更新
Dim mDataVersionArray(ds.Tables.Count - 1 ) As String
For i As Integer = 0 To ds.Tables.Count - 1
mDataVersionArray(i) = ds.Tables(i).TableName
Next
Array.sort(mDataVersionArray)
' 如果第一个版本大于最后一个版本,则倒置
If mDataVersionArray( 0 ) > mDataVersionArray(mDataVersionArray.Length - 1 ) Then
Array.Reverse(mDataVersionArray)
End If
For i As Integer = 0 To mDataVersionArray.Length - 1
UpdateDatabaseByDataTable(ds.Tables(mDataVersionArray(i)))
Next
End Sub
这一点,在考虑数据库的设计时就特别的强调过。昨晚写代码时就忘了。所以无论如何的有把握,最好还是将要点写在纸条上,不时的看一下好。
下面分析RegionalCodeCenter项目的要点。
程序说到这里,或许你认为是不是我将简单的问题复杂了,用得着建那么多的项目吗?可是到了RegionalCodeCenter这个项目,再分析下来,我会觉得项目还不够用。
再次重温各个项目的作用。
RegionalCodeLibary仅仅与数据库打交道。数据库夹带着它,无论到哪,都用得着。没有这个项目,只有数据库,无论是谁,都要走这个项目相似的路。它对外提供的结果,都是Framework的基础类。它没什么要求,很简单。它是满足这个方案需求的核心。核心的东西,就是需要简单。
RegionalCodeCommon项目。它是从全局全方位的角度来引领方案需求实现过程的思维。它是纵观全局的,也是横向联系的。但是它也是民主的,它仅仅是展现给编码者应注意些什么,如果你愿意,可以使用它提供的一些属性和方法,不愿意,你尽可绕开它。如果想少走弯路,快些上路,弄清楚并把握好它的意念,从而甘心接受它的“约束”,是值得的。
针对特定方案,你研究了,有体会了,也应该充实这个项目的内容,让它更具生气。
ReionalCodeCenter项目。它要联系上RegionalCodeLibary,并把RegionalCodeLibary提供的服务内容转成我们需要的特定内容,再转身,传给用户。
RegionalCodeLibary是方案的核心,而它呢,则是方案的中心,也是方案的关键,最纷繁复杂的了。
在这里,居中一刀切下来,就变成以后要说的Remoting(webservice我还没接触过)方式了。
如果你能体会“一刀切”,那么,后面的代码就好理解的了。
只能笼统说。下面边写代码边说好些。但要注意,写这个项目往往是先写RegionalCodeCommon项目的。
下一篇,行政区划程序的设计(十),RegionalCodeCommon项目的设计。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。