我们通常看到很多的学习使用控制数据库和接口连接——DataGridView,在我们的房间,当我们敲开使用第一遍阶段似该控件——MSHFlexGrid,随着学习的深入,发现我们用到的平台越来越人性化了,如今用的VS2013的控件——DataGridView能够直接和数据库相连接,今天重点说一下DataGridView删除行并同一时候更新数据库功能的实现:

这是删除前的效果,我们要实现的是如图的效果,左图为界面。右图为数据库中的数据。可是还须要考虑要删除的用户是否正在登录。假设正在登录。则不能删除。

 

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2RhbjE5OTExMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="300" height="170" alt="">

删除后的效果:

  

实现这个功能主要是在U层加了一个方法,B层、D层和其它删除时是大相径庭的,以下看一下代码实现部分:

1、D层:

  Public Function DelUser(enUser As UserInfoEntity) As Integer Implements IUserInfo.DelUser
Dim cmdText As String
Dim sqlParams As SqlParameter()
Dim sqlHelper As New SqlHelper
Dim intResult As Integer cmdText = "Delete from T_UserInfo where UserID=@UserID"
sqlParams = {New SqlParameter("@UserID", enUser.UserID)}
intResult = sqlHelper.ExecuteAddDelUpdate(cmdText, CommandType.Text, sqlParams) Return intResult
End Function

2、B层:

 Public Function DelUser(ByVal enUser As UserInfoEntity) As Integer
Dim iUserInfo As IUserInfo
Dim intResult As Integer iUserInfo = factory.CreateSelectUser()
intResult = iUserInfo.DelUser(enUser) Return intResult End Function

3、U层:

a.定义一个删除行的过程:

 ''' <summary>
''' 删除用户的自己定义过程
''' </summary>
''' <remarks></remarks>
Public Sub DelUser()
Dim intRows As Integer = DataGridView1.SelectedRows.Count '推断选中的行数
Dim intDelRow As Integer
Dim enUser As New UserInfoEntity
Dim bllAddDelUser As New AddDelUserBLL
Dim strUserID As String '获取选中数据的第一列值
Dim intResult As Integer If intRows > 0 Then
'从下往上删除,防止漏行
For intDelRow = intRows To 1 Step -1
strUserID = DataGridView1.SelectedRows(intDelRow - 1).Cells("UserIDDataGridViewTextBoxColumn").Value.ToString()
'假设该用户正在工作,则不能删除
If pubshare.strUserName = strUserID.Trim() Then
MsgBox("该用户正在工作,不能删除", vbOKOnly + vbExclamation, "提示")
Exit Sub
Else
'将要删除的用户ID传给实体
enUser.UserID = strUserID
'同一时候将该实体的信息从数据库中删除
intResult = bllAddDelUser.DelUser(enUser)
If intResult > 0 Then
'将数据库中所删除的相应的信息在dataGridview表中也删除
DataGridView1.Rows.RemoveAt(DataGridView1.SelectedRows(intDelRow - 1).Index)
MsgBox("删除成功", vbOKOnly + vbExclamation, "提示")
Else
MsgBox("删除失败", vbOKOnly + vbExclamation, "提示")
End If
End If Next
Else
DataGridView1.Rows.Clear()
End If
End Sub

b.通过点击删除button来实现这个过程:

 Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click
If DataGridView1.SelectedRows.Count > 0 Then
If MessageBox.Show("确定要删除所选信息吗?", "提示", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
DelUser()
End If
Else
MessageBox.Show("请选择要删除的用户! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If End Sub

不过个人的一点想法,希望和大家交流!

版权声明:本文博客原创文章,博客,未经同意,不得转载。

间支付系统,DataGridView的更多相关文章

  1. 国内首款开源的互联网支付系统roncoo-pay

    roncoo-pay是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量.便捷.易用,且集支付.资金对账.资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需 ...

  2. Java生鲜电商平台-商家支付系统与对账系统架构实战

    Java生鲜电商平台-商家支付系统与对账系统架构实战 说明:关于生鲜电商平台,支付系统是连接消费者.商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付 ...

  3. Dubbo入门到精通学习笔记(七):基于Dubbo的分布式系统架构介绍(以第三方支付系统架构为例)、消息中间件的作用介绍

    文章目录 架构简单介绍 消息中间件在分布式系统中的作用介绍 消息中间件的定义 消息中间件的作用 应用场景 JMS(Java Message Service) JMS消息模型 实现了JMS规范的消息中间 ...

  4. Atitit 在线支付系统功能设计原理与解决方案 与目录

    Atitit 在线支付系统功能设计原理与解决方案 与目录 1.1. 支付系统1 1.2. 独立的支付子体系..微服务架构..1 1.3. 参考书籍1 支付战争 [The PayPal Wars:Bat ...

  5. 基于支付系统真实场景的分布式事务解决方案效果演示: http://www.iqiyi.com/w_19rsveqlhh.html

    基于支付系统真实场景的分布式事务解决方案效果演示:http://www.iqiyi.com/w_19rsveqlhh.html

  6. XxPay支付系统-boot版本 使用

    https://segmentfault.com/a/1190000016987391?utm_source=tag-newest 有三个版本: spring boot 版本: spring clou ...

  7. XxPay支付系统-boot版本了解一下

    了解一下 之前看了龙果支付系统,也没看透,用公司框架改写,然后就改的比较乱

  8. Java电商支付系统实战(一)- 简介

    现如今,支付成为热点 对于电商业务,这都是不可或缺的 核心功能剖析 下单->支付 nginx 将用户请求反向代理到我们编写的电商系统 = 下单 之后,点击支付跳转到支付系统,最后对接 通过跳转将 ...

  9. SpringBoot2.1电商通用(微信+支付宝)支付系统实战

    『课程目录』: ├─第10章 全模块电商系统之商品模块 │      10-1_商品列表-上.mp4 │      10-2_商品列表-中.mp4 │      10-3_商品列表-下.mp4 │  ...

随机推荐

  1. 恢复SQLServer实例连接

    原文:恢复SQLServer实例连接 译自: http://www.mssqltips.com/sqlservertip/2682/recover-access-to-a-sql-server-ins ...

  2. 如何获得SQL Server索引使用情况

    原文:如何获得SQL Server索引使用情况 原文出自: http://www.mssqltips.com/sqlservertip/1239/how-to-get-index-usage-info ...

  3. 【Spark亚太研究院系列】Spark道路的真正的主人-第一章 构建Spark星团(第五步)(6)

    结束historyserver例如,下面的命令可以看到: 第四步:验证Hadoop分布式集群 首先在hdfs文件系统上创建两个文件夹.创建步骤例如以下所看到的: watermark/2/text/aH ...

  4. AndroidSlidingUpPanel 使用控制和简单的分析方法

    滑 - 向上的时间可以飞起来控件的显示区域.分类似至play music有效. 该控件在主界面中有一个例如以下图红色箭头所指的底部触发区域: 该区域点击的时候被隐藏在下方的内容将网上漂移到顶部,直到被 ...

  5. STL源代码分析 集装箱 stl_set.h

    本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie set ------------------------------------------ ...

  6. 杭州电 1052 Tian Ji -- The Horse Racing(贪婪)

    http://acm.hdu.edu.cn/showproblem.php? pid=1052 Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS ...

  7. 安装、设置与启动MySql绿色版的方法

    原文:安装.设置与启动MySql绿色版的方法 1.解压 mysql-noinstall-5.1.30-win32.zip(下载地址http://dev.mysql.com/downloads/mysq ...

  8. JavaEE(20) - Web层和EJB的整合(Entity Manager)

    1. 使用容器管理的EntityManager 2. 使用应用程序管理的EntityManager 3. 使用ThreadLocal保证EntityManager的线程安全 4. EAO封装JPA 5 ...

  9. HDU 1086:You can Solve a Geometry Problem too

    pid=1086">You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  10. Ubuntu 15.10 x64 安装 Android SDK(转)

    操作系统:Ubuntu 15.10 x64 目标:安装 Android SDK 本文最后更新时间:2015-11-3 安装32位库文件 2013年9月的iPhone 5s是第一款64位手机,而Andr ...