📄 login.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 + -