zoukankan      html  css  js  c++  java
  • 三层 之 充值

    在三层的地方也炖了不少时间了,再炖就烂了,找好了时机,趁大家不注意,总结一下:

    从上面的这幅导图中,就可以看到,由U层(表示层) 引用 B层(逻辑判断层)和 Entity(实体“层”),由 B层 引用 D层和实体层,由D层引用实体层,也就是


    只能单向引用,不可反复

    下面,还是由实例来说明耕层之间的关系:

    充值之界面:

                         

    充值之U层:

    <pre name="code" class="vb">Public Class Form1
    
        Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
            Try
                Dim eUser2 As New EntityRecharge.RechargeInfo
                Dim eUser3 As EntityRecharge.RechargeInfo
    
                eUser2.IDcard = Trim(txtIDcard.Text)
                eUser2.AddCash = Trim(txtAddCash.Text)
    
                Dim mgr As New RechargeBLL.RechargeManager
                eUser3 = mgr.RechargeSc(eUser2)
            Catch ex As Exception
                MessageBox.Show(ex.Message.ToString())
            End Try
            
    
        End Sub
    
        Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
            Me.Close()
        End Sub
    End Class


    
    

    充值之B层:

    <pre name="code" class="vb">Public Class RechargeManager
        Public Function RechargeSc(ByVal User As RechargeInfo) As EntityRecharge.RechargeInfo
            Dim rDAO As New RechargeDAL.RechargeDAO
            Dim eUser1 As Boolean
    
            eUser1 = rDAO.SelectUser(User)        '寻找卡号
            If eUser1 = False Then                '返回FALSE 代表  查找失败,也就是卡号未注册
                Throw New Exception("卡号不存在,充值失败")
            Else
                eUser1 = rDAO.UpdateCash(User)     '查找成功,执行充值操作
                If eUser1 = True Then
                    MsgBox("充值成功")
                Else
                    Throw New Exception("充值失败")
                End If
            End If
            Return User
    
        End Function
    End Class


    
    

    充值之D层:

    Public Class RechargeDAO
        Public conn As New SqlConnection("server=.;database=Login;user id=sa;password=li")
    
        Public Function SelectUser(ByVal User As RechargeInfo) As Boolean
            Dim eUser As New EntityRecharge.RechargeInfo
            Dim reader As SqlDataReader
            'Dim intNum1 As Integer
            Dim sql As String = "SELECT * FROM Recharge WHERE IDcard=@IDcard"
            Dim cmd As New SqlCommand(sql, conn)
    
    
            cmd.CommandText = sql                     '获取SQL语句的具体内容
            cmd.CommandType = CommandType.Text         '获取上述SQL语句的具体类型,在此为Select
            cmd.Parameters.Add(New SqlParameter("@IDcard", User.IDcard)) '若用成eUser.UserName则会出现参数未传递的错误提示
            'MsgBox(conn.State)
            conn.Open()
            reader = cmd.ExecuteReader
            While reader.Read
                eUser.IDcard = reader.GetInt32(0)
            End While
            conn.Close()
            If eUser.IDcard = Nothing Then
                Return False
            Else
                Return True
            End If
        End Function
    
        Public Function UpdateCash(ByVal User As RechargeInfo) As Boolean
            Dim intNum As Integer
            Dim eUser As New EntityRecharge.RechargeInfo
            Dim sql As String = "INSERT INTO Recharge (IDcard,AddCash,Cash) VALUES (@IDcard,@AddCash,@Cash)"
            Dim cmd As New SqlCommand(sql, conn)
    
            cmd.CommandText = sql
            cmd.CommandType = CommandType.Text
            cmd.Parameters.Add(New SqlParameter("@IDcard", User.IDcard))
            cmd.Parameters.Add(New SqlParameter("@AddCash", User.AddCash))
            cmd.Parameters.Add(New SqlParameter("@Cash", 11 + User.AddCash))
            conn.Open()                   '打开连接
            intNum = cmd.ExecuteNonQuery()     '返回 受影响行数
            conn.Close()        '关闭连接
            If intNum = 1 Then
                Return True
            Else
                Return False       '返回 处理结果
            End If
    
        End Function
    
    End Class




    
    Entity层:
    

    <pre name="code" class="vb">Public Class RechargeInfo
        Dim _idcard As Integer
        Dim _cash As Integer
        Dim _addcash As Integer
    
        Public Property IDcard As Integer          '设置IDcard属性
            Get
                Return _idcard
            End Get
            Set(value As Integer)
                _idcard = value
            End Set
        End Property
        Public Property AddCash As Integer          '设置AddCash属性
            Get
                Return _addcash
            End Get
            Set(value As Integer)
                _addcash = value
            End Set
        End Property
        Public Property Cash As Integer             '设置Cash属性
            Get
                Return _cash
            End Get
            Set(value As Integer)
                _cash = value
            End Set
        End Property
    End Class


    
    
    其实吧,这篇和登录那片是差不多的,不一样的地方是,这次在查询的时候,我都用的是Boolean返回值,也就是说,我不需要你查询的数据,我只需要你查询的结果代表的意义,有没有这条数据,有就直接告诉我有,没有就直接告诉我没有,不需要再去比对

  • 相关阅读:
    基于Furion的.NET5 WebApi开发框架
    由react的todolist想到的
    react第三节-基础概念梳理
    uniapp引入字体图标与uniapp传入事件对象与自定义参数
    (react+tsx)函数式组件传参问题
    关于git正确clone指定分支
    关于‘react-app-rewried 不是内部或外部命令’的深度解析
    flex下的多行对齐与预处理器中使用nth-child选择器
    webpack(2)--webapck自身的配置
    webpack解析(1)
  • 原文地址:https://www.cnblogs.com/DoubleEggs/p/5747204.html
Copyright © 2011-2022 走看看