zoukankan      html  css  js  c++  java
  • 三层结构的连接

    解释:

    三层结构:表示层,业务层,数据层

       1)数据层:代表物理数据库。

       2)业务层:负责数据层与表示层之间的数据传输。

       3)表示层:应用程序的客户端,它通过业务层来访问数据库。

        表示层所操作的是驻留在内存中的本地数据,当需要更新数据库数据时,要通过业务层提供的更新方法实现。这样可以大大提高应用程序的性能,提高了编程的灵活性。

    ―――――――――――――――

    1)数据层:代表物理数据库  ( Module 里定义全局模块)

    Module Global

    Public constr As String = "Provider=SQLOLEDB.1;Data Source=(local);Initial Catalog=Store;User ID=sa;Password=sa"

    End Module

    ―――――――――――――――

    2)业务层:负责数据层与表示层之间的数据传输。(Module 里定义全局模块)

    Imports System.Data

    Imports System.Data.OleDb

    ――――――

    Module DataBase

    举例一:

    Public Function GetESDataSource() As DataTable

        '得到显示某表的 DataSource

    Dim strSql As String

            Try

                con = New OleDbConnection(constr)

                con.Open()

                strSql = "select语句"

                dap = New OleDbDataAdapter(strSql, con)

                Dim tb As New DataTable

                dap.Fill(tb)

                Return tb

            Catch ex As Exception

                MsgBox(ex.Message.ToString)

            Finally

                If con.State = ConnectionState.Open Then

                    con.Close()

                End If

            End Try

    End Function

    ―――――――

    举例二:

    Public Function GetStoreItemGoodsNum(ByVal Good As String, ByVal store As String) As Integer

            '返回指定仓库 指定物品的数量

            Try

                con = New OleDbConnection(constr)

                If con.State = ConnectionState.Open Then

                    con.Close()

                End If

                con.Open()

                Dim sqlstr As String = "select iGoodsNum from TMM_StoreItem where cStoreID=N'" & store & "' and cGoodsID=N'" & Good & "'"

                cmd = New OleDbCommand(sqlstr, con)

                Dim read As OleDbDataReader = cmd.ExecuteReader()

                If Not read.HasRows Then

                    Return 0

                Else

                    read.Read()

                    Return read.Item(0)

                End If

                Return -1

            Catch ex As Exception

                MsgBox(ex.Message.ToString)

                Return -1

            Finally

                If con.State = ConnectionState.Open Then

                    con.Close()

                End If

            End Try

        End Function

    End Module

    ――――――

    3)表示层:应用程序的客户端,它通过业务层来访问数据库。

    举例:调用业务层的举例二:

     

    Dim DBOutNum As Integer = GetStoreItemGoodsNum(goods, outstore)  

    Dim DBEnterNum As Integer = GetStoreItemGoodsNum(goods, enterstore)

    //注意里面的参数

     

     

            If num > DBOutNum Then

                MsgBox("调出数量大于库存数量!", MsgBoxStyle.Critical, Me.Text)

                Return

            Else

                InsertChangeStore(id, goods, num, outstore, enterstore, eDate, iDate)

     

                If num = DBOutNum Then

                    flag = DeleteStoreItem(goods, outstore)

                ElseIf num < DBOutNum Then

                    flag = UpdateStoreItem(goods, DBOutNum - num, outstore)

                End If

     

                If DBEnterNum = 0 Then

                    flag = InsertStoreItem(goods, num, enterstore)

                Else

                    flag = UpdateStoreItem(goods, DBEnterNum + num, enterstore)

                End If

     

                MsgBox("操作成功!", MsgBoxStyle.Information, Me.Text)

            End If

  • 相关阅读:
    perl 实现ascall 码转换
    perl 利用管道读取压缩文件内容
    perl 字符串比较操作符
    perl chomp 函数的真正作用
    RSQLite 操作sqlite数据库
    R 中的do.call 函数
    JavaMail发送和接收邮件API(详解)
    POP3_使用SSL链接邮箱并获取邮件
    MySql_delete同时删除多表相关联记录
    mybatis_mybatis写mapper文件注意事项
  • 原文地址:https://www.cnblogs.com/sishierfei/p/1610399.html
Copyright © 2011-2022 走看看