Vb.net 从数据集中删除

Vb.net 从数据集中删除,vb.net,Vb.net,我有一个由文本框和组合框填充的数据集,当用户点击apply按钮时,我也在网格中显示它们。我还有一个链接删除按钮。我想做的是,当我点击删除按钮时,我想删除那个特定的记录,但我的代码会将它们全部删除 Protected Sub gvPlotFilePaymentVouCherDetail_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles g

我有一个由文本框和组合框填充的数据集,当用户点击apply按钮时,我也在网格中显示它们。我还有一个链接删除按钮。我想做的是,当我点击删除按钮时,我想删除那个特定的记录,但我的代码会将它们全部删除

Protected Sub gvPlotFilePaymentVouCherDetail_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles gvPlotFilePaymentVouCherDetail.RowDeleting
        Dim dsPlotFilePaymentVoucherDetails As DataSet
        dsPlotFilePaymentVoucherDetails = Session("dataset")
        Dim cid As String = gvPlotFilePaymentVouCherDetail.DataKeys(e.RowIndex).Values(0).ToString
        dsPlotFilePaymentVoucherDetails.Tables(0).Rows.Clear()
        gvPlotFilePaymentVouCherDetail.DataSource = dsPlotFilePaymentVoucherDetails.Tables(0).DefaultView
        gvPlotFilePaymentVouCherDetail.DataBind()
        Session("dataset") = dsPlotFilePaymentVoucherDetails
    End Sub
这就是它删除所有记录的方式。

替换

dsPlotFilePaymentVoucherDetails.Tables(0).Rows.Clear()


所以它实际上只删除你想要的行,而不是所有内容。。。当然,设置适当的“列名称”

为什么要再次获取所有记录?您似乎没有在会话中更新数据集以保存数据库中的新值,因为您清除了记录,然后将其分配回会话。如何设置数据集?您需要使用GridViewDeleteEventArgs从数据集中找到要删除的数据集中的行,然后更新数据库以删除该记录,最后将数据集分配给会话您的代码不会删除任何内容。它所做的是删除
数据表中的每一行。您需要做的是删除绑定到用户请求删除的网格行的特定行。对于
数据表
,删除和删除是两件不同的事情。删除会将该行从
数据表中删除,因为从未添加过like is,这对数据库没有影响。删除将保留
数据表中的行
,但将其标记为
已删除
。然后,当您使用数据适配器将更改从
DataTable
保存到数据库时,相应的行将从数据库中删除。您无法获取它。数据尚未保存到数据库中。它位于数据集中,等待我单击“保存”按钮。
dsPlotFilePaymentVoucherDetails.Tables(0).Rows.Remove( _ 
dsPlotFilePaymentVoucherDetails.Tables(0).Select("column_name = '" & cid & "'")(0))