VB.NET中DataGridView删除指定数据行,并更新数据库
发布时间:2020-12-17 07:44:01 所属栏目:百科 来源:网络整理
导读:收费系统需要这样一个功能:首先用DataGridView浏览所有用户信息,然后可以删除指定行的用户信息,最后更新这一变化。界面如图: 1、首先检测要删除的用户是否是当前正在使用的用户: [vb] view plain copy print ? SPANstyle= "FONT-FAMILY:KaiTi_GB2312;FO
收费系统需要这样一个功能:首先用DataGridView浏览所有用户信息,然后可以删除指定行的用户信息,最后更新这一变化。界面如图:
1、首先检测要删除的用户是否是当前正在使用的用户:
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">'查看改用户是否正在被使用,若正在使用则不能删除 If Trim(DGVuser.CurrentRow.Cells(0).Value) = frmLogin.txtUID.Text Then MsgBox("该用户正在使用,不能删除!","正在使用") Exit Sub End 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> 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="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="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>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>7、最后,在表示层,调用业务逻辑层的函数:
<span style="FONT-FAMILY: KaiTi_GB2312; FONT-SIZE: 18px">Dim dt As New DataModel.dm_datatable '数据更改更新到数据库 If bllUserinfo.deleteUser(dt) = True Then MsgBox("成功删除用户!","成功") Exit Sub Else MsgBox("未能成功删除用户,详情请咨询管理员!","失败") Exit Sub End If</span>在5中,如果直接这样调用:ds.Tables.Add(dm_dt.DT),则会产生错误:DT已存在DataSet。所以dm_dt.DT复制后才能为ds所使用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |