在上一篇文章中,介绍了我软件中代码的布局,基于以上布局,我在和另外两名程序员合作中为了方便大家工作制订了,一系列标准,这种结构与这些标准的制订,在后来实现快速开发提供了有力的前提保证.
我的标准主要归纳为以下几点.
1,在上文中提到,用户对象,类,表是一一对应的,我在标准钟要求表的命名类的名称用户对象的名称一一对应,比如用户 client 对象 表的名子就叫 ClientInfo, 对象类的名子就可以命名为ClsClient.
2,类里的变量名字,与表的字段名字完全相同.
3,每个类都必须支持AddNew ,UpDate,Delete,LoadInfo,GetItem,QueryItem函数(例程如下)
数据库表
Imports DBH
Public Class ClsClientInfo
Public ID as Long
Public Name as String
Public Addr as String
Public Trad as String
Public Area as String
Public Kind as String
Public phoneNum as String
Public EMail as String
Public HomePage as String
Public Bank as String
Public Account as String
Public OMSName as String
Public CPerson as String
Public Zip as String
Public OutputValue as String
Public Products as String
Public SendPhone as String
Public SendAddr as String
Public SendPerson as String
Public BillAddr as String
Public BillPhone as String
Public Class as String
Public CDate as Date
Public LinkPerson as String
Public Fax as String
Public LinkPersonMobile as String
Public Remark as String
Public State as String
'AddNew 新建数据信息
Public Function AddNew(ByRef IDStr As String) As Boolean
dim SqlStr as String
SqlStr =" Insert Into ClientInfo (Name,Addr,Trad,Area,Kind,phoneNum,EMail,HomePage,Bank,Account,OMSName,CPerson,Zip,OutputValue,Products,SendPhone,SendAddr,SendPerson,BillAddr,BillPhone,Class,CDate,LinkPerson,Fax,LinkPersonMobile,Remark,State) values(@Name,@Addr,@Trad,@Area,@Kind,@phoneNum,@EMail,@HomePage,@Bank,@Account,@OMSName,@CPerson,@Zip,@OutputValue,@Products,@SendPhone,@SendAddr,@SendPerson,@BillAddr,@BillPhone,@Class,@CDate,@LinkPerson,@Fax,@LinkPersonMobile,@Remark,@State)"
sqlStr &="SELECT @@IDENTITY"
Dim dbhelper As New ClsDbHelper
dbhelper.SqlText = SqlStr
dbhelper.AddPara("@Name", me.Name)
dbhelper.AddPara("@Addr", me.Addr)
dbhelper.AddPara("@Trad", me.Trad)
dbhelper.AddPara("@Area", me.Area)
dbhelper.AddPara("@Kind", me.Kind)
dbhelper.AddPara("@phoneNum", me.phoneNum)
dbhelper.AddPara("@EMail", me.EMail)
dbhelper.AddPara("@HomePage", me.HomePage)
dbhelper.AddPara("@Bank", me.Bank)
dbhelper.AddPara("@Account", me.Account)
dbhelper.AddPara("@OMSName", me.OMSName)
dbhelper.AddPara("@CPerson", me.CPerson)
dbhelper.AddPara("@Zip", me.Zip)
dbhelper.AddPara("@OutputValue", me.OutputValue)
dbhelper.AddPara("@Products", me.Products)
dbhelper.AddPara("@SendPhone", me.SendPhone)
dbhelper.AddPara("@SendAddr", me.SendAddr)
dbhelper.AddPara("@SendPerson", me.SendPerson)
dbhelper.AddPara("@BillAddr", me.BillAddr)
dbhelper.AddPara("@BillPhone", me.BillPhone)
dbhelper.AddPara("@Class", me.Class)
dbhelper.AddPara("@CDate", me.CDate)
dbhelper.AddPara("@LinkPerson", me.LinkPerson)
dbhelper.AddPara("@Fax", me.Fax)
dbhelper.AddPara("@LinkPersonMobile", me.LinkPersonMobile)
dbhelper.AddPara("@Remark", me.Remark)
dbhelper.AddPara("@State", me.State)
Try
IDStr=dbhelper.ExecValue()
Return True
Catch ex As Exception
Msgbox ex.Message
Return False
Finally
dbhelper.Close
End Try
End Function
'UpdateInfo 更新数据信息
Public Function UpdateInfo(ByVal IDStr As String) As Boolean
dim SqlStr as String
SqlStr =" Update ClientInfo Set Name=@Name,Addr=@Addr,Trad=@Trad,Area=@Area,Kind=@Kind,phoneNum=@phoneNum,EMail=@EMail,HomePage=@HomePage,Bank=@Bank,Account=@Account,OMSName=@OMSName,CPerson=@CPerson,Zip=@Zip,OutputValue=@OutputValue,Products=@Products,SendPhone=@SendPhone,SendAddr=@SendAddr,SendPerson=@SendPerson,BillAddr=@BillAddr,BillPhone=@BillPhone,Class=@Class,CDate=@CDate,LinkPerson=@LinkPerson,Fax=@Fax,LinkPersonMobile=@LinkPersonMobile,Remark=@Remark,State=@State where ID= " & IDStr & "
Dim dbhelper As New ClsDbHelper
dbhelper.SqlText = SqlStr
dbhelper.AddPara("@Name", me.Name)
dbhelper.AddPara("@Addr", me.Addr)
dbhelper.AddPara("@Trad", me.Trad)
dbhelper.AddPara("@Area", me.Area)
dbhelper.AddPara("@Kind", me.Kind)
dbhelper.AddPara("@phoneNum", me.phoneNum)
dbhelper.AddPara("@EMail", me.EMail)
dbhelper.AddPara("@HomePage", me.HomePage)
dbhelper.AddPara("@Bank", me.Bank)
dbhelper.AddPara("@Account", me.Account)
dbhelper.AddPara("@OMSName", me.OMSName)
dbhelper.AddPara("@CPerson", me.CPerson)
dbhelper.AddPara("@Zip", me.Zip)
dbhelper.AddPara("@OutputValue", me.OutputValue)
dbhelper.AddPara("@Products", me.Products)
dbhelper.AddPara("@SendPhone", me.SendPhone)
dbhelper.AddPara("@SendAddr", me.SendAddr)
dbhelper.AddPara("@SendPerson", me.SendPerson)
dbhelper.AddPara("@BillAddr", me.BillAddr)
dbhelper.AddPara("@BillPhone", me.BillPhone)
dbhelper.AddPara("@Class", me.Class)
dbhelper.AddPara("@CDate", me.CDate)
dbhelper.AddPara("@LinkPerson", me.LinkPerson)
dbhelper.AddPara("@Fax", me.Fax)
dbhelper.AddPara("@LinkPersonMobile", me.LinkPersonMobile)
dbhelper.AddPara("@Remark", me.Remark)
dbhelper.AddPara("@State", me.State)
Try
dbhelper.ExecNonQuery()
Return True
Catch ex As Exception
Msgbox ex.Message
Return False
Finally
dbhelper.Close
End Try
End Function
'LoadInfo 实例划类数据
Public Function LoadInfo(ByVal IDStr As String) As Boolean
dim SqlStr as String
SqlStr =" Select * from ClientInfo where ID='" & IDStr & " '"
Dim dbhelper As New ClsDbHelper
Dim dr As SqlClient.SqlDataReader
Try
dr = dbhelper.GetDataReaderBySqlString(sqlStr)
IF dr.Read() Then
Me.ID= dr("ID")
Me.Name= dr("Name")
Me.Addr= dr("Addr")
Me.Trad= dr("Trad")
Me.Area= dr("Area")
Me.Kind= dr("Kind")
Me.phoneNum= dr("phoneNum")
Me.EMail= dr("EMail")
Me.HomePage= dr("HomePage")
Me.Bank= dr("Bank")
Me.Account= dr("Account")
Me.OMSName= dr("OMSName")
Me.CPerson= dr("CPerson")
Me.Zip= dr("Zip")
Me.OutputValue= dr("OutputValue")
Me.Products= dr("Products")
Me.SendPhone= dr("SendPhone")
Me.SendAddr= dr("SendAddr")
Me.SendPerson= dr("SendPerson")
Me.BillAddr= dr("BillAddr")
Me.BillPhone= dr("BillPhone")
Me.Class= dr("Class")
Me.CDate= dr("CDate")
Me.LinkPerson= dr("LinkPerson")
Me.Fax= dr("Fax")
Me.LinkPersonMobile= dr("LinkPersonMobile")
Me.Remark= dr("Remark")
Me.State= dr("State")
End IF
dr.Close()
Return True
Catch ex As Exception
Msgbox ex.Message
Return False
Finally
dbhelper.Close
End Try
End Function
'GetItems 实例划类数据
Public Function GetItems(ByVal IDStr As String) As List(OF ClsClientInfo)
dim SqlStr as String
dim ls as New List (Of ClsClientInfo )
SqlStr =" Select * from ClientInfo where Name='" & IDStr & " '"
Dim dbhelper As New ClsDbHelper
Dim dr As SqlClient.SqlDataReader
Try
dr = dbhelper.GetDataReaderBySqlString(sqlStr)
While dr.Read()
Dim Info as ClsClientInfo
Info.ID= dr("ID")
Info.Name= dr("Name")
Info.Addr= dr("Addr")
Info.Trad= dr("Trad")
Info.Area= dr("Area")
Info.Kind= dr("Kind")
Info.phoneNum= dr("phoneNum")
Info.EMail= dr("EMail")
Info.HomePage= dr("HomePage")
Info.Bank= dr("Bank")
Info.Account= dr("Account")
Info.OMSName= dr("OMSName")
Info.CPerson= dr("CPerson")
Info.Zip= dr("Zip")
Info.OutputValue= dr("OutputValue")
Info.Products= dr("Products")
Info.SendPhone= dr("SendPhone")
Info.SendAddr= dr("SendAddr")
Info.SendPerson= dr("SendPerson")
Info.BillAddr= dr("BillAddr")
Info.BillPhone= dr("BillPhone")
Info.Class= dr("Class")
Info.CDate= dr("CDate")
Info.LinkPerson= dr("LinkPerson")
Info.Fax= dr("Fax")
Info.LinkPersonMobile= dr("LinkPersonMobile")
Info.Remark= dr("Remark")
Info.State= dr("State")
ls.Add(info)
End While
dr.Close()
Return ls
Catch ex As Exception
Msgbox ex.Message
Return ls
Finally
dbhelper.Close
End Try
End Function
End Class
在这种工作模式下,很快我发现这些类的代码惊人的相似,作为一个程序员,不停地做重复的工作是无法接受的,于是编写了一段程序来生成这些代码,生成代码的程序界面如图所示,其实上面的代码就是生成器生成的代码.生成器如下
代码生成器的产生,是我们的团队实现了快速开发,只要能有效的建表,业务层的代码是直接生成的,程序员只需要按照业务流程调试界面即可
ERP设计之我见二-标准化与快速开发
最新推荐文章于 2024-05-01 22:09:45 发布