VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • vb.net 教程 20-4 库存管理系统3.18 操作员管理(FormAdmin)

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
    关于《Visual Basic.Net 循序渐进》请到百度网盘下载,具体下载地址:
    链接:https://pan.baidu.com/s/1IfaLvlklx-nT4KK4VKZuIw 
    提取码:ip5n
 
 
 
    增加操作员或者重置密码,密码都设置为默认的“123456”,操作员可以登录系统后再修改自己的密码。
    全部代码如下:
 
Imports System.ComponentModel
Imports System.Data.OleDb
 
Public Class FormAdmin
 
    Dim connection As OleDbConnection
 
    Private Sub FormAdmin_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        connection = New OleDbConnection(databaseConnString)
        '打开数据连接
        connection.Open()
 
        Call fillLv()
    End Sub
 
    '填充数据选项,主要是 lvUser 
    Private Sub fillLv()
        lvUser.Items.Clear()
 
        '新建OleDbCommand对象实例
        Dim command As New OleDbCommand()
 
        '=========填充用户列表==================
        '要执行的SQL查询
        command.CommandText = "select ID,姓名,是否停用 from 操作员 where id<>0"
        '设置OleDbCommand的数据连接为OleDbConnection
        command.Connection = connection
 
        '声明OleDbDataReader对象
        Dim odReader As OleDbDataReader
        '通过OleDbCommand的ExecuteReader方法获得OleDbDataReader对象实例。
        odReader = command.ExecuteReader()
 
        '如果OleDbDataReader中包含数据
        If odReader.HasRows Then
            '循环读取每一行数据,直到Read方法返回False
            Do While odReader.Read
                Dim lvi As New ListViewItem(odReader.GetValue(0).ToString)
                lvi.SubItems.Add(odReader.GetValue(1))
                lvi.SubItems.Add(odReader.GetValue(2))
                lvUser.Items.Add(lvi)
            Loop
        End If
        odReader.Close()
 
        '关闭数据读取器
        odReader.Close()
 
    End Sub
 
    '增加操作员
    Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
        Dim newUser As String
        newUser = InputBox("请输入操作员姓名:" & ControlChars.CrLf & "(新建操作员默认密码为:123456)", "增加操作员")
        If newUser.Trim = "" Then
            MessageBox.Show("取消操作")
        End If
 
        '关于加密,请参看教程第11章
        '这里使用简单的md5加密
        Dim pass As String = "123456"
        Dim passMd5 As String = ClassMd5.toMD5(pass)
 
        Dim command As New OleDbCommand()
        command.CommandText = "select top 1 ID from 操作员 order by ID desc"
        command.Connection = connection
        Dim odReader As OleDbDataReader
        Dim userid As Integer
        odReader = command.ExecuteReader(CommandBehavior.SingleResult)
        odReader.Read()
        userid = CType(odReader.GetValue(0), Integer) + 1
        odReader.Close()
 
        command.CommandText = "insert into 操作员(ID,姓名,密码,是否停用) values(" & userid & ",'" & newUser & "','" & passMd5 & "','否')"
        command.ExecuteNonQuery()
 
        '刷新lvUser中的显示
        Call fillLv()
    End Sub
 
    '修改操作者的姓名
    Private Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
        If lvUser.SelectedItems.Count < 1 Then
            MessageBox.Show("请先选择需要修改的操作员")
            Exit Sub
        End If
 
        Dim UserID As Integer = CType(lvUser.SelectedItems(0).Text, Integer)
        Dim userNameOld As String = lvUser.SelectedItems(0).SubItems(1).Text
 
        Dim userNameNew As String
        userNameNew = InputBox("请输入操作员姓名:", "修改操作员姓名")
        If userNameNew.Trim = "" Then
            MessageBox.Show("取消操作")
        End If
 
        If MessageBox.Show("确实要将操作员姓名从 " & userNameOld & " 替换为 " & userNameNew & " 吗?", "修改姓名", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) = DialogResult.Cancel Then
            Exit Sub
        End If
 
        '从数据库中修改
        '新建OleDbCommand对象实例
        Dim command As New OleDbCommand()
        '设置OleDbCommand的数据连接为OleDbConnection
        command.Connection = connection
 
        command.CommandText = "update 操作员 set 姓名='" & userNameNew & "' where ID=" & UserID
        command.ExecuteNonQuery()
 
        '刷新lvUser中的显示
        Call fillLv()
    End Sub
 
    '启用或停用操作者
    '如果直接删除,可能会导致已经保存的数据出现问题
    Private Sub btnUnable_Click(sender As Object, e As EventArgs) Handles btnUnable.Click
        If lvUser.SelectedItems.Count < 1 Then
            MessageBox.Show("请先选择需要修改的操作员")
            Exit Sub
        End If
        Dim UserID As Integer = CType(lvUser.SelectedItems(0).Text, Integer)
        Dim userNameOld As String = lvUser.SelectedItems(0).SubItems(1).Text
        Dim isUseOld As String = lvUser.SelectedItems(0).SubItems(2).Text
 
        Dim isUseNew As String = IIf(isUseOld = "否", "是", "否")
        Dim operation As String = IIf(isUseOld = "否", "停用", "启用")
 
        If MessageBox.Show("确实要" & operation & "操作员 " & userNameOld & " 吗?", operation & "操作员", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) = DialogResult.Cancel Then
            Exit Sub
        End If
 
 
        Dim command As New OleDbCommand()
        command.Connection = connection
        command.CommandText = "update 操作员 set 是否停用='" & isUseNew & "' where ID=" & UserID
        command.ExecuteNonQuery()
        '刷新lvUser中的显示
        Call fillLv()
 
    End Sub
 
    '重置密码
    Private Sub btnPass_Click(sender As Object, e As EventArgs) Handles btnPass.Click
        If lvUser.SelectedItems.Count < 1 Then
            MessageBox.Show("请先选择需要修改的操作员")
            Exit Sub
        End If
 
        Dim UserID As Integer = CType(lvUser.SelectedItems(0).Text, Integer)
        Dim userNameOld As String = lvUser.SelectedItems(0).SubItems(1).Text
        If MessageBox.Show("确实要重置操作员 " & userNameOld & " 的密码吗?" & ControlChars.CrLf & "(重置后的密码为:123456)", "重置密码", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) = DialogResult.Cancel Then
            Exit Sub
        End If
 
        Dim passMd5 As String = ClassMd5.toMD5("123456")
        Dim command As New OleDbCommand()
        command.Connection = connection
        command.CommandText = "update 操作员 set 密码='" & passMd5 & "' where ID=" & UserID
        command.ExecuteNonQuery()
 
    End Sub
 
    Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
        Me.Close()
    End Sub
 
    Private Sub FormAdmin_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
        connection.Close()
    End Sub
End Class
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供的参考。
————————————————
版权声明:本文为CSDN博主「VB.Net」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/UruseiBest/article/details/114225116

相关教程