机房重构——选中的下机/选中的用户删除

        在机房的功能中,曾经的两个功能:选中用户删除和选中用户下机在第一遍机房的时候只是实现了选中一个用户来进行下机,而不是选中多个进行的,现在在VS中的DateGridView有了这样的方便功能,所以我们就可以实现操作选中的多用户了。


一、实现的方法


        我们在VB.NET(也就是VS平台)上的DataGridView控件有了这样的属性,就是DataGridView.SelectedRows这个属性,这样就可以很是方便我们去查看选中的信息的,这样下来我们实现删除的第一目标就达到了,就是获得要删除的基本信息!

基本信息的获取:

a=DataGridView.SelectedRows(i).Cell(j).value  'i是选中的第i行,j是这一行的第几个格,i,j的初始都是0

有了这些基本信息,批量删除/下机就不是问题了。


二、下机/删除举例


首先是删除的例子:

DataGridView的SelectionMode要设置成FullRowSelect


 Dim UserInfo As New Model.Teacher_Info
        Dim UserFac As New Facade.UserInfoFAC
        Dim RowNum As Integer            '要删除的选择行变量
        'dgvUserInfo是显示数据用的DataGridView
        If dgvUserInfo.SelectedRows.Count = 0 Then     '判断是否进行选择
            MsgBox("请先选择一行!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "提示")
            Exit Sub
        End If

        For RowNum = 0 To dgvUserInfo.SelectedRows.Count - 1
            Try
                UserInfo.UserID = dgvUserInfo.SelectedRows(RowNum).Cells(0).Value.ToString    '获取删除ID
                UserFac.DelUser(UserInfo)        '执行删除
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "提示")
                MsgBox("用户" + UserInfo.UserID.Trim + "删除失败!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "提示")      '提示哪个用户删除失败
                dgvRefresh()     '自定义刷新表的方法
                Exit Sub
            End Try
        Next

        dgvRefresh()             '自定义刷新表的方法
        MsgBox("用户删除成功!" & dgvUserInfo.SelectedRows.Count, MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "提示")

下机的例子:

For i = 0 To dgvOnLine.SelectedRows.Count - 1
        StuOutInfo.CardNo = dgvOnLine.SelectedRows(i).Cells(1).Value
        StuOutInfo.StudentNO = dgvOnLine.SelectedRows(i).Cells(0).Value
        StuOutInfo.Off_Operator = UserNameHost
        StuOutInfo.OffDate = Format(ServerTime, "yyyy-MM-dd")
        StuOutInfo.OffTime = Format(ServerTime, "HH:mm:ss")
        Try
            StuOnlineFac.OutOne(StuOutInfo)       '执行下机
        Catch ex As Exception
            MsgBox(ex.Message & "卡号:" & StuOutInfo.CardNo)
            '这里输出失败的卡号,并加入变量
            FaildCardNO = FaildCardNO & StuOutInfo.CardNo & " "
        End Try
Next

这里要在声明一下,我的前第二遍讲DateGridView的博客里面的代码并不适用于VB.NET,敲上去并没有这个方法,知是为何。代码如下:

int rows = dataGridView1.indexrows    '获得选种行的索引  
string str = dataGridView1.rows[rows].cells[num].text    '获取第rows行的索引为num列的值  


三、总结

        总是说让我们建立知识网,这里面的用的东西和我的前二篇博客中的DateGridView显示数据有相同的地方,都是用的横纵坐标定位然后赋值/取值的方法,在这里我们用到的基本上就是由Rows换为了SelectedRows,其实这个控件比VB6.0里面的那个要人性化多了,看来IDE软件的发展也在不断的方便这开发者们啊!

你可能感兴趣的:(重构,机房收费系统)