首页 > 代码库 > 三层数据库四大法宝之“增”

三层数据库四大法宝之“增”

    因为之前机房重构无从下手,所以师父给我的建议是自己试着先敲三层的增、删、改、查,机房重构大都无非是围绕着对数据库的操作进行展开的。实事证明,师父是正确的。现如今敲完三层登录又在此基础上敲了三层的增删改查,顿时感觉对机房重构豁然开朗,嘿嘿!

    由于三层登录增删改查这四块内容着实太多。经一番“苦思冥想”之后,决定将这些内容分别分为四块:增、删、改、查。

    下面先向大家介绍“增”:

    首先是建立数据库,和之前一样这里就不再说明了。

    接着就是代码的编写,如下:

实体层:

<span style="font-family:KaiTi_GB2312;font-size:24px;">''' <summary>
''' 实体层,存放多种属性
''' </summary>
''' <remarks></remarks>
Public Class User
    '定义UserName属性
    Private _UserName As String
    Public Property UserName As String
        Get
            Return _UserName
        End Get

        Set(value As String)
            _UserName = value
        End Set
    End Property

    '定义PassWord属性
    Private _PassWord As String '
    Public Property PassWord As String
        Get
            Return _PassWord
        End Get

        Set(value As String)
            _PassWord = value
        End Set
    End Property

End Class
</span>

U层:

<span style="font-family:KaiTi_GB2312;font-size:24px;">Public Class Form1
    '查询

    Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnSelect.Click
        Try
            '获得表现层的数据
            Dim muser As New LoginMODEL.User              '实例化一个新的实体,用来传递B层的实体
            muser.UserName = txtUserName.Text.Trim           '将用户名传递给实体层的UserName
            muser.PassWord = txtPassWord.Text.Trim            '将密码传递给实体层的PassWord

            '调用B层,登录判断
            Dim mgr As New LoginBLL.SelectBLL
            muser = mgr.SelectBLL(muser)

        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())              '错误处理
        End Try
    End Sub

End Class
</span>


B层:

<span style="font-family:KaiTi_GB2312;font-size:24px;">'查
Public Class SelectBLL
    Public Function SelectBLL(ByVal User As LoginMODEL.User) As LoginMODEL.User
        Dim uDao As New LoginDAL.SqlserverUser()               '实例化D层中新的UserDAO对象
        Dim mUser As LoginMODEL.User                  '定义一个类型为实体层参数,用户赋值

        mUser = uDao.SelectDAL(User)

        '判断是否查询到记录
        If IsNothing(mUser.UserName) Then
            Throw New Exception("查询失败,请检查用户名和密码!")          '没有记录
        Else
            MsgBox("查询成功,恭喜!", , "提示框")         '有记录
        End If
        Return mUser            '返回实体
    End Function
End Class</span>

D层:

<span style="font-family:KaiTi_GB2312;font-size:24px;">' 引用命名空间
Imports System.Data
Imports System.Data.SqlClient
Imports LoginMODEL

'D层,主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,需要引用实体层
'查
Public Class SqlserverUser
    Public conn As New SqlConnection("server=ZY-PC;database=Login;user id=sa;password =1")          '创建数据库的连接
    Public Function SelectDAL(ByVal User As User) As LoginMODEL.User         '传实体Login,方便对实体中的参数进行调用
        Dim reader As SqlDataReader         '定义类型为SQLDATAREADER的变量reader
        Dim mUser As New LoginMODEL.User
        Dim sql As String = "select UserName,passWord from T_Users where UserName=@UserName and PassWord=@PassWord" '数据库查询语句
        Dim cmd As New SqlCommand(sql, conn)        '创建sqlcommand对象
        cmd.CommandText = sql                       '获取SQL语句的具体内容
        cmd.CommandType = CommandType.Text           '获取上述SQL语句的具体类型
        cmd.Parameters.Add(New SqlParameter("@UserName", User.UserName))
        cmd.Parameters.Add(New SqlParameter("@PassWord", User.PassWord))
        conn.Open()        '打开数据连接
        reader = cmd.ExecuteReader()              '执行查询语句,并生成一个DataReader

        '读取查询到的数据,并返回给相应的属性
        While reader.Read()
            mUser.UserName = reader.GetString("UserName")            '给@UserName赋值
            mUser.PassWord = reader.GetString("PassWord")            '给@PassWord赋值
        End While
        Return mUser               '返回查询到的实体
        conn.Close()              '关闭连接

    End Function

End Class</span>



三层数据库四大法宝之“增”