VB.NET中DataGridView删除指定数据行,并更新数据库

前端之家收集整理的这篇文章主要介绍了VB.NET中DataGridView删除指定数据行,并更新数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

收费系统需要这样一个功能:首先用DataGridView浏览所有用户信息,然后可以删除指定行的用户信息,最后更新这一变化。界面如图:

1、首先检测要删除用户是否是当前正在使用的用户

  1. <SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px">'查看改用户是否正在被使用,若正在使用则不能删除
  2. IfTrim(DGVuser.CurrentRow.Cells(0).Value)=frmLogin.txtUID.TextThen
  3. MsgBox("该用户正在使用,不能删除!",MsgBoxStyle.OkOnly,"正在使用")
  4. ExitSub
  5. EndIf</SPAN>

2、然后在删除指定数据行:

  1. <SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px">'删除datagridview中的数据行
  2. 'DGVuser.Rows.Remove(DGVuser.CurrentRow)也可
  3. DGVuser.Rows.RemoveAt(DGVuser.CurrentRow.Index)</SPAN>

3、建立一个模板类,用于传递数据:
  1. <SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px">PublicClassdm_datatable
  2. Private_dtAsDataTable
  3. PublicPropertyDTAsDataTable
  4. Get
  5. Return_dt
  6. EndGet
  7. Set(ByValvalueAsDataTable)
  8. _dt=value
  9. EndSet
  10. EndProperty
  11. EndClass</SPAN>
  1. <SPANstyle="WHITE-SPACE:normal"><SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px"></SPAN></SPAN>
4、用表示层,用模板类传递数据:
  1. <SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px">DimdtAsNewDataModel.dm_datatable
  2. dt.DT=DGVuser.DataSource</SPAN>
  1. <SPANstyle="WHITE-SPACE:normal"><SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px"></SPAN></SPAN>
5、在数据访问层,编写修改数据库函数
  1. <SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px">'删除指定用户
  2. PublicFunctiondeleteUser(ByValdm_dtAsDataModel.dm_datatable)AsBoolean
  3. DimconnStringAsString=_
  4. "PersistSecurityInfo=true;DataSource=192.168.24.158;InitialCatalog=CR_Charge_SYS;UserID=sa;PWD=123456"
  5. DimsqlconnAsNewsqlConnection(connString)
  6. DimsqltxtAsString="select*fromUser_info"
  7. DimsqlcmdAsNewsqlCommand(sqltxt,sqlconn)
  8. DimdaAsNewsqlDataAdapter(sqlcmd)
  9. DimdsAsNewDataSet
  10. DimdtAsNewDataTable
  11. da.UpdateCommand=sqlcmd
  12. DimmybuilderAsNewsqlCommandBuilder(da)
  13. Try
  14. dt=dm_dt.DT.Copy
  15. ds.Tables.Add(dt)
  16. sqlconn.Open()
  17. da.Update(ds,"User_info")
  18. ReturnTrue
  19. CatchexAsException
  20. MsgBox(ex.Message)
  21. ReturnFalse
  22. Finally
  23. sqlconn.Close()
  24. sqlcmd=Nothing
  25. EndTry
  26. ReturnNothing
  27. EndFunction</SPAN>
6、在业务逻辑层,编写传递数据访问层的函数
  1. <SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px">'删除指定用户
  2. PublicFunctiondeleteUser(ByValdtAsDataModel.dm_datatable)AsBoolean
  3. DimsqlUserInfoAsNewChargeSystemDAL.dal_User_info
  4. ReturnsqlUserInfo.deleteUser(dt)
  5. EndFunction</SPAN>
7、最后,在表示层,调用业务逻辑层的函数
  1. <SPANstyle="FONT-FAMILY:KaiTi_GB2312;FONT-SIZE:18px">DimdtAsNewDataModel.dm_datatable
  2. '数据更改更新到数据库
  3. IfbllUserinfo.deleteUser(dt)=TrueThen
  4. MsgBox("成功删除用户!","成功")
  5. ExitSub
  6. Else
  7. MsgBox("未能成功删除用户,详情请咨询管理员!","失败")
  8. ExitSub
  9. EndIf</SPAN>
在5中,如果直接这样调用:ds.Tables.Add(dm_dt.DT),则会产生错误:DT已存在DataSet。所以dm_dt.DT复制后才能为ds所使用。

猜你在找的VB相关文章