⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login.vb

📁 东软内部材料(三)程序设计导论
💻 VB
字号:
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Text
Imports System.Security.Cryptography

'该类所有的函数都是为模块“登录”提供操作数据库功能的。
'所涉及的知识点可以参阅课本第九章到第十一章。

Public Class Login

    '该函数将查询员工的登录密码。
    '参数 strLoginName:员工的登录名。
    '参数 arPword:保存返回的登录密码。
    '返回值:DBResult.Success 或 DBResult.Failed,表示操作成功与否。
    Shared Function GetSavedPassword(ByVal strLoginName As String, ByRef arPword As Byte()) As Integer

        ' 创建连接数据库的 Connection 对象。
        Dim cn As New SqlConnection(DBConnection.ConnectionString)

        Dim cmd As New SqlCommand("spwebGetEmpPassword", cn)

        ' 设置该 Command 执行的是一个存储过程
        cmd.CommandType = CommandType.StoredProcedure

        '为存储过程添加参数。
        Dim paramLoginName As New SqlParameter("@LoginName", SqlDbType.Char, 20)
        paramLoginName.Value = strLoginName
        cmd.Parameters.Add(paramLoginName)

        '为存储过程添加参数,注意该参数为输出类型。
        Dim paramPassword As New SqlParameter("@Pword", SqlDbType.Binary, 20)
        paramPassword.Direction = ParameterDirection.Output
        cmd.Parameters.Add(paramPassword)

        ' 为存储过程添加返回参数,该参数的值如果为 0 则表示数据库操作失败,非 0 则为成功。
        Dim paramReturn As New SqlParameter("@ReturnValue", SqlDbType.Int)
        paramReturn.Direction = ParameterDirection.ReturnValue
        cmd.Parameters.Add(paramReturn)

        Dim iRetValue As Integer = DBResult.Success

        Try
            ' 打开数据库连接,执行对数据库的操作。注意操作数据库会引发异常。
            cn.Open()
            ' Command 对象的 ExecuteNonQuery 方法用来执行不返回记录集的 SQL 语句或存储过程。
            cmd.ExecuteNonQuery()

            If paramReturn.Value = 1 Then
                '如果返回参数的值为 1,则标识数据库操作成功。
                arPword = paramPassword.Value
            Else
                '否则标识数据库操作失败。
                iRetValue = DBResult.Failed
            End If

        Catch e As Exception
            ' 产生异常,则对 iRetValue 赋值标志数据库操作失败。
            iRetValue = DBResult.Failed
        Finally
            ' 关闭数据库连接,以节省系统资源。
            If cn.State = ConnectionState.Open Then
                cn.Close()
            End If
        End Try

        Return iRetValue

    End Function

    '该函数将查询员工的员工编号。
    '参数 strLoginName:员工的登录名。
    '参数 iEmpID:保存返回的员工编号。
    '返回值:DBResult.Success 或 DBResult.Failed,表示操作成功与否。
    Shared Function GetEmployeeID(ByVal strLoginName As String, ByRef iEmpID As Integer) As Integer

        ' 创建连接数据库的 Connection 对象。
        Dim cn As New SqlConnection(DBConnection.ConnectionString)

        Dim cmd As New SqlCommand("spwebGetEmployeeID", cn)

        ' 设置该 Command 执行的是一个存储过程
        cmd.CommandType = CommandType.StoredProcedure

        '为存储过程添加参数。
        Dim paramLoginName As New SqlParameter("@LoginName", SqlDbType.NChar, 20)
        paramLoginName.Value = strLoginName
        cmd.Parameters.Add(paramLoginName)

        '为存储过程添加参数,注意该参数为输出类型。
        Dim paramEmpID As New SqlParameter("@EmpID", SqlDbType.Int)
        paramEmpID.Direction = ParameterDirection.Output
        cmd.Parameters.Add(paramEmpID)

        ' 为存储过程添加返回参数,该参数的值如果为 0 则表示数据库操作失败,非 0 则为成功。
        Dim paramReturn As New SqlParameter("@ReturnValue", SqlDbType.Int)
        paramReturn.Direction = ParameterDirection.ReturnValue
        cmd.Parameters.Add(paramReturn)

        Dim iRetValue As Integer = DBResult.Success

        Try
            ' 打开数据库连接,执行对数据库的操作。注意操作数据库会引发异常。
            cn.Open()
            ' Command 对象的 ExecuteNonQuery 方法用来执行不返回记录集的 SQL 语句或存储过程。
            cmd.ExecuteNonQuery()

        Catch e As Exception
            ' 产生异常,则对 iRetValue 赋值标志数据库操作失败。
            iRetValue = DBResult.Failed

        Finally
            ' 关闭数据库连接,以节省系统资源。
            If cn.State = ConnectionState.Open Then
                cn.Close()
            End If

        End Try

        If paramReturn.Value = 1 Then
            '如果返回参数的值为 1,则标识数据库操作成功。
            iEmpID = Trim(paramEmpID.Value)
        Else
            '否则标识数据库操作失败。
            iRetValue = DBResult.Failed
        End If

        Return iRetValue

    End Function

End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -