VB.NET中DataGridView删除指定数据行,并更新数据库
来源:互联网 发布:桌游淘宝 编辑:程序博客网 时间:2024/05/12 11:08
收费系统需要这样一个功能:首先用DataGridView浏览所有用户信息,然后可以删除指定行的用户信息,最后更新这一变化。界面如图:
1、首先检测要删除的用户是否是当前正在使用的用户:
- <SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">'查看改用户是否正在被使用,若正在使用则不能删除
- If Trim(DGVuser.CurrentRow.Cells(0).Value) = frmLogin.txtUID.Text Then
- MsgBox("该用户正在使用,不能删除!", MsgBoxStyle.OkOnly, "正在使用")
- Exit Sub
- End If</SPAN>
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">'查看改用户是否正在被使用,若正在使用则不能删除If Trim(DGVuser.CurrentRow.Cells(0).Value) = frmLogin.txtUID.Text ThenMsgBox("该用户正在使用,不能删除!", MsgBoxStyle.OkOnly, "正在使用")Exit SubEnd If</span>
2、然后在删除指定数据行:
- <SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px"> '删除datagridview中的数据行
- 'DGVuser.Rows.Remove(DGVuser.CurrentRow) 也可
- DGVuser.Rows.RemoveAt(DGVuser.CurrentRow.Index)</SPAN>
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px"> '删除datagridview中的数据行 'DGVuser.Rows.Remove(DGVuser.CurrentRow) 也可DGVuser.Rows.RemoveAt(DGVuser.CurrentRow.Index)</span>
3、建立一个模板类,用于传递数据:
- <SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">Public Class dm_datatable
- Private _dt As DataTable
- Public Property DT As DataTable
- Get
- Return _dt
- End Get
- Set(ByVal value As DataTable)
- _dt = value
- End Set
- End Property
- End Class</SPAN>
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">Public Class dm_datatablePrivate _dt As DataTablePublic Property DT As DataTableGetReturn _dtEnd GetSet(ByVal value As DataTable)_dt = valueEnd SetEnd PropertyEnd Class</span>
- <SPAN style="WHITE-SPACE: normal"><SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px"> </SPAN></SPAN>
<span style="WHITE-SPACE: normal"><span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px"> </span></span>4、用表示层,用模板类传递数据:
- <SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">Dim dt As New DataModel.dm_datatable
- dt.DT = DGVuser.DataSource</SPAN>
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">Dim dt As New DataModel.dm_datatabledt.DT = DGVuser.DataSource</span>
- <SPAN style="WHITE-SPACE: normal"><SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px"> </SPAN></SPAN>
<span style="WHITE-SPACE: normal"><span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px"> </span></span>5、在数据访问层,编写修改数据库的函数:
- <SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">'删除指定用户
- Public Function deleteUser(ByVal dm_dt As DataModel.dm_datatable) As Boolean
- Dim connString As String = _
- "Persist Security Info=true;Data Source=192.168.24.158;Initial Catalog=CR_Charge_SYS;User ID=sa;PWD=123456"
- Dim sqlconn As New SqlConnection(connString)
- Dim sqltxt As String = "select * from User_info"
- Dim sqlcmd As New SqlCommand(sqltxt, sqlconn)
- Dim da As New SqlDataAdapter(sqlcmd)
- Dim ds As New DataSet
- Dim dt As New DataTable
- da.UpdateCommand = sqlcmd
- Dim mybuilder As New SqlCommandBuilder(da)
- Try
- dt = dm_dt.DT.Copy
- ds.Tables.Add(dt)
- sqlconn.Open()
- da.Update(ds, "User_info")
- Return True
- Catch ex As Exception
- MsgBox(ex.Message)
- Return False
- Finally
- sqlconn.Close()
- sqlcmd = Nothing
- End Try
- Return Nothing
- End Function</SPAN>
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">'删除指定用户Public Function deleteUser(ByVal dm_dt As DataModel.dm_datatable) As BooleanDim connString As String = _"Persist Security Info=true;Data Source=192.168.24.158;Initial Catalog=CR_Charge_SYS;User ID=sa;PWD=123456"Dim sqlconn As New SqlConnection(connString)Dim sqltxt As String = "select * from User_info"Dim sqlcmd As New SqlCommand(sqltxt, sqlconn)Dim da As New SqlDataAdapter(sqlcmd)Dim ds As New DataSetDim dt As New DataTableda.UpdateCommand = sqlcmdDim mybuilder As New SqlCommandBuilder(da)Trydt = dm_dt.DT.Copyds.Tables.Add(dt)sqlconn.Open()da.Update(ds, "User_info")Return TrueCatch ex As ExceptionMsgBox(ex.Message)Return FalseFinallysqlconn.Close()sqlcmd = NothingEnd TryReturn NothingEnd Function</span>6、在业务逻辑层,编写传递数据访问层的函数:
- <SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">'删除指定用户
- Public Function deleteUser(ByVal dt As DataModel.dm_datatable) As Boolean
- Dim sqlUserInfo As New ChargeSystemDAL.dal_User_info
- Return sqlUserInfo.deleteUser(dt)
- End Function</SPAN>
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">'删除指定用户Public Function deleteUser(ByVal dt As DataModel.dm_datatable) As BooleanDim sqlUserInfo As New ChargeSystemDAL.dal_User_infoReturn sqlUserInfo.deleteUser(dt)End Function</span>7、最后,在表示层,调用业务逻辑层的函数:
- <SPAN style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">Dim dt As New DataModel.dm_datatable
- '数据更改更新到数据库
- If bllUserinfo.deleteUser(dt) = True Then
- MsgBox("成功删除用户!", MsgBoxStyle.OkOnly, "成功")
- Exit Sub
- Else
- MsgBox("未能成功删除用户,详情请咨询管理员!", MsgBoxStyle.OkOnly, "失败")
- Exit Sub
- End If</SPAN>
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">Dim dt As New DataModel.dm_datatable'数据更改更新到数据库If bllUserinfo.deleteUser(dt) = True ThenMsgBox("成功删除用户!", MsgBoxStyle.OkOnly, "成功")Exit SubElseMsgBox("未能成功删除用户,详情请咨询管理员!", MsgBoxStyle.OkOnly, "失败")Exit SubEnd If</span>在5中,如果直接这样调用:ds.Tables.Add(dm_dt.DT),则会产生错误:DT已存在DataSet。所以dm_dt.DT复制后才能为ds所使用。
0 0
- VB.NET中DataGridView删除指定数据行,并更新数据库
- VB.NET中DataGridView删除指定数据行,并更新数据库
- 删除Datagridview选中行并更新数据库
- 删除DataGridView选中行并更新数据库
- VB.NET 中DataGridView显示数据库中的数据
- 用修改DataGridView数据并更新数据库
- dataGridView中更新数据到数据库中
- VB.net下DataGridView的自定义 数据可并、多行标题
- 【个人机房重构】——删除DataGridView选中行并更新数据库㈢
- VB.NET中根据DataGridView中显示的数据条件数据行显示不同的颜色
- [VB.NET]在DataGridView中怎样直接更新行?马上给分
- datagridview的使用,即时新增,更新,删除数据库数据
- dataGridView 粘贴数据并更新到数据库及发送邮件
- Vb.net-DatagridView之右击删除选中行
- [VB.NET]vb.net中怎样删除Datagrid中的数据
- VB.NET中DataGridView控件
- [VB.NET]求救:如何用DataGrid控件修改数据并保存于数据库中?
- VB.NET & DataGridView与数据库的连接
- 一直走下去
- 网络流(最小割)问题中的基础构图及分析方法小结
- Javascript对象arguments和this
- View绘制之---onMeasure()
- Oracle Tablespace
- VB.NET中DataGridView删除指定数据行,并更新数据库
- 谈谈关于PHP的代码安全相关的一些致命知识
- 利用属性动画制作下拉显示更多的效果
- 页面间传值的方式(表单post传值)
- 分布式配置管理平台 - Disconf介绍
- Foundation框架下的NSString应用
- 状态栏和导航栏
- SQLServer触发器创建、删除、修改、查看
- C# SQLserver数据库图片存取