前面写过一篇文章是DataGridView控件显示数据的,DataGridView在与数据库打交道时会常常出现,也非常有用。通过DataGridView对数据库进行更改和查询都比較方便。

这里我们须要用DataGridView数据,并通过选中行将数据从数据库中删除。

其原理是把选中记录的主键提取出来,然后传给实体,通过实体给D层传值实现对数据库的改动。

以下是各层代码。供大家參考。

接口层代码都是D层的父类方法。这里仅仅给出D层代码:

<span style="background-color: rgb(255, 255, 255);"><span style="font-family:KaiTi_GB2312;font-size:18px;">    '重写删除用户接口方法
Public Function DelUser(user As Entity.LoginEntity) As Integer Implements IAddDel.DelUser
Dim strSQL As String = "delete from User_info where userName=@username"
Dim params() As SqlParameter = {New SqlParameter("@username", user.user_name)}
Dim helper As New SqlHelper
Dim int = helper.ExecuteNoQuery(strSQL, CommandType.Text, params)
Return int
End Function</span></span>

抽象工厂代码:

<span style="background-color: rgb(255, 255, 255);"><span style="font-family:KaiTi_GB2312;font-size:18px;">  Private Shared ReadOnly AssemblyName As String = "DAL" '声明程序集名称
Private Shared ReadOnly db As String = ConfigurationManager.AppSettings("DB") '读取配置文件 Public Function AddDel() As IAddDel
Dim className As String = AssemblyName + "." + db + "AddDelDAL"
Dim iadddel As IAddDel
iadddel = CType(Assembly.Load(AssemblyName).CreateInstance(className), IAddDel) '反射
Return iadddel
End Function
</span></span>

B层代码:

<span style="background-color: rgb(255, 255, 255);"><span style="font-family:KaiTi_GB2312;font-size:18px;">    '推断是否删除成功
Public Function IsDelUser(ByVal user As Entity.LoginEntity) As Boolean
Dim int = iadddel.DelUser(user)
If int = 1 Then
Return True
Else
Return False
End If
End Function</span></span>

U层代码

<span style="background-color: rgb(255, 255, 255);"><span style="font-family:KaiTi_GB2312;font-size:18px;"> Dim k As Integer = gvwUser.SelectedRows.Count
Dim thisUser As New Entity.LoginEntity
Dim ub As New BLL.AddDelBLL
'推断是否有选择记录
If k > 0 Then
If MessageBox.Show("删除用户后将无法恢复! 是否继续删除?", "提示", MessageBoxButtons.YesNo, _
MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
'从下往上删,避免沙漏效应
For i As Integer = k To 1 Step -1
'获取username
thisUser.user_name = gvwUser.SelectedRows(i - 1).Cells("userName").Value.ToString
'推断选中用户是否为登录用户
If thisUser.user_name = UserName Then
MsgBox("当前用户不能被删除。请又一次选择!", vbOKOnly + vbExclamation, "系统提示")
Exit Sub
Else
If ub.IsDelUser(thisUser) = True Then
MsgBox("删除成功!", vbOKOnly + vbInformation, "系统提示")
Else
MessageBox.Show("删除失败!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
'将从数据库中删除的信息从Datagridview1中删除
gvwUser.Rows.RemoveAt(gvwUser.SelectedRows(i - 1).Index)
End If
Next
End If
Else
MsgBox("请选中要删除的行")
Exit Sub
End If
End Sub</span></span>

效果例如以下:

删除前:                                             删除后:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDkyNjk2NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDkyNjk2NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDkyNjk2NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

我们通过DataGridView对数据进行操作更加直观。可是数据无价,操作数据库时一定要慎重。以免给我们带来不必要的麻烦。必要时删除前要给与提示。是否确定删除,或者提高操作权限,方便操作的前提是保证数据的安全性。

最新文章

  1. java 4种方式读取配置文件 + 修改配置文件
  2. JavaScript作用域原理(二)——预编译
  3. 快消零售行业怎么用K2做开关店管理?
  4. redis操作
  5. UVa 1479 (Treap 名次树) Graph and Queries
  6. MIME 部分扩展名与类型对应
  7. TeleMCU视频会议之Android版本号WebRTC client支持
  8. SQL In的替换
  9. idmap_ad — Samba&#39;s idmap_ad Backend for Winbind《转载》
  10. eclipse设置web项目发布到tomcat根目录下
  11. fzu 2150 Fire Game 【身手BFS】
  12. 【转载】CANoe 入门 Step by step系列(一)基础应用
  13. C#中使用Bogus创建模拟数据
  14. ko学习二,绑定语法
  15. Vue入门基础
  16. (三)Sass和Compass--制作精灵图片
  17. NGINX 安装于配置
  18. Django之数据表增删改查
  19. sparkStreaming获取kafka数据(java版本)
  20. Asp.net自定义控件系列(一)

热门文章

  1. (转)ios 代码规范
  2. PAT Basic 1062
  3. PAT Basic 1058
  4. Spring 常见错误解决方案记录
  5. 在xcode上把你的app多语言国际化(NSLocalizedString)
  6. 神经网络的BP推导过程
  7. php排序介绍_冒泡排序_选择排序法_插入排序法_快速排序法
  8. Ubuntu 终端命令整理
  9. bzoj1975: [Sdoi2010]魔法猪学院【k短路&amp;A*算法】
  10. 如何将文件上传到ftp