在机房的功能中,曾经的两个功能:选中用户删除和选中用户下机在第一遍机房的时候只是实现了选中一个用户来进行下机,而不是选中多个进行的,现在在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列的值