一个分层的小工程(医院信息自动化管理系统)----数据层部分(DataAccess)

原创 2006年06月23日 11:02:00
         最近完成了一个很小的医院信息自动化管理系统,想在此写写对此次开发的总结。因为是第一次从头到尾的自己开发,所以有些地方写的有点幼稚。如有不正确的地方,还请各位高手指教一二!

         先说说我的整体开发过程的思路。
         1.根据系统的预期功能,首先创建好数据库。现在整个工程已经快完工了,总的感觉是数据库建立的好坏十分重要。
         2.写好DataAccess(数据层)。代码准确,不能为后来的开发带来麻烦。
         3.根据具体的功能写出BusinessRules(业务层)。本人的思路是从DataAccess中返回一个DataSet,然后在具体的业务层中的功能块中接受到这个DataSet,在BusinessRules中建立一个DataTable,把DataSet中的数据填充到DataTable中,然后返回DataTable.以供表示层来使用它需要的DataTable。
         4.根据预先想到的功能返回到界面上的设计。由于本人的美工很差,所以界面很一般,只是拖拖控件。

          预期的功能有3部分,分别是:门诊管理,医院设备管理和药房管理。
          从3部分的功能需求出数据库中的实体:员工,病人,设备,部门,科系,病房,病床,门诊业务。与这些实体分别相关的属性表和关系表。现在数据库建好了!那么开始写工程的数据层(DataAccess),程序如下:
         1.一个得到连接字符串的类。
          Public Class conStr
                Private conStr As String

                Public Sub New()
                    conStr = "server=localhost;database=The Hospital Message Manager;user id=sa;password=;"
                End Sub

                Public Function getConStr() As String
                    getConStr = conStr
                End Function
          End Class
      
          2.一个有返回植操作的数据库操作类,即查询。
          Imports System.Data.SqlClient

          Public Class QueryData
                ‘此函数是一个对SQL语句的操作。
                Public Function QueryDataInSentence(ByVal sqlStr As String) As DataSet  
                        Dim constr As New conStr
                        Dim adpter As New SqlDataAdapter
                        Dim ds As New DataSet
                        Dim com As New SqlCommand
                        Dim con As New SqlConnection(constr.getConStr)

                        adpter.SelectCommand = com
                        adpter.SelectCommand.Connection = con
                        adpter.SelectCommand.CommandType = CommandType.Text
                        adpter.SelectCommand.CommandText = sqlStr

                        con.Open()
                        Try
                            adpter.Fill(ds)

                            Return ds
                        Catch ex As Exception
                            MsgBox(ex.Message)
                        Finally
                            con.Close()
                        End Try
                End Function

                ’此函数是个对存储过程的操作。
                Public Function QueryDataInProc(ByVal sqlProcName As String) As DataSet
                        Dim conStr As New conStr
                        Dim adpter As New SqlDataAdapter
                        Dim ds As New DataSet
                        Dim com As New SqlCommand
                        Dim con As New SqlConnection(conStr.getConStr)

                        adpter.SelectCommand = com
                        adpter.SelectCommand.Connection = con
                        adpter.SelectCommand.CommandType = CommandType.StoredProcedure
                        adpter.SelectCommand.CommandText = sqlProcName

                        con.Open()
                        Try
                            adpter.Fill(ds)

                            Return ds
                        Catch ex As Exception
                            MsgBox(ex.Message)
                        Finally
                            con.Close()
                        End Try
                End Function
        End Class
       
        3.一个无返回值的数据操作类,即填加,删除和修改。因为程序的需要,这个类中的方法有个Boolean的返回值。
        Imports System.Data.SqlClient

        Public Class UnQueryData
                ‘此函数是一个对SQL语句的操作。
                Public Function ChangeInSentence(ByVal sqlStr As String) As Boolean
                    Dim constr As New conStr
                    Dim com As New SqlCommand
                    Dim con As New SqlConnection(constr.getConStr)

                    com.Connection = con
                    com.CommandType = CommandType.Text
                    com.CommandText = sqlStr

                    con.Open()
                    Try
                        com.ExecuteNonQuery()

                        Return True
                    Catch ex As Exception
                        Return False
                        MsgBox(ex.Message)
                    Finally
                        con.Close()
                    End Try
                End Function

                ’此函数是个对存储过程的操作。
                Public Function ChangeInProc(ByVal sqlProcName As String) As Boolean
                    Dim constr As New conStr
                    Dim com As New SqlCommand
                    Dim con As New SqlConnection

                    com.Connection = con
                    com.CommandType = CommandType.StoredProcedure
                    com.CommandText = sqlProcName

                    con.Open()
                    Try
                        com.ExecuteNonQuery()

                        Return True
                    Catch ex As Exception
                        Return False
                        MsgBox(ex.Message)
                    Finally
                        con.Close()
                    End Try
                End Function
        End Class
         
        数据层的操作主要注意每个sqlClient对象的生命周期,为了不使BusinessRules层访问此层出现异常情况,我把没个对象的定义都定义在方法里,使得对象的生命周期很短。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

医院管理系统-软件工程

  • 2012-10-17 20:29
  • 1.10MB
  • 下载

车辆信息管理系统(部分模块待改进),直接运行即可,绝对原创

#include #include #include #include #include #include "list.h" #define N 20 #define M 5 ...
  • xk_qq
  • xk_qq
  • 2012-03-30 08:59
  • 1866

医院管理系统(实现功能:浏览医院的整体结构,给定任意节点输出该节点信息就子节点信息,计算在给出点之间的“病房的数量”)

//头文件(包括HosPital.h,TreeNode.h,Tree.h) //HosPital.h #ifndef HOSPARTNODE_H #define HOSPARTNODE_H #incl...

医院信息管理系统

jsp宠物医院信息管理系统

  • 2013-08-13 11:53
  • 1.46MB
  • 下载

承志医院管理系统项目解析 门诊医生工作站—辅助检查项目(六)

1.33辅助检查 在需要做辅助检查的时候,选择病人,然后选择相关信息的辅助检查项目,如图(1)、(2)所示:: 图(1) 图(2)   从界面上可以看到我们这里用到的控件有   控件名称 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)