DB中重复插入

时间:2015-04-23 07:25:37

标签: sql-server vb.net checkbox duplicate-data

我的GridView行包含.net checkbox控件。用户会检查行,点击按钮后会insertchecked中的GeneratedInvoiceBatches

VB代码:

Protected Sub btnGenerate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGenerate.Click
            Dim grItem As DataGridItem
            Dim i As Integer = 0


            For Each grItem In grdTransactions.Items

                If grItem.ItemType = ListItemType.AlternatingItem Or grItem.ItemType = ListItemType.Item Then

                    If CType(grItem.Cells(0).FindControl("chkSelect"), CheckBox).Checked = True Then

                        Utilities.InsertUnsettledBatchesForInvoice(grItem.Cells(5).Text.Trim, grItem.Cells(7).Text.Trim, grItem.Cells(11).Text.Trim)

                        i = i + 1

                    End If

                End If

            Next

            If i = 0 Then
                Response.Write("<script> alert('No selected record(s) to process!');</script>")
            Else

                Response.Write("<script> alert('Operation Successful!');</script>")
                BindDataGrid()
            End If

        End Sub

存储过程:

Create proc [dbo].[spInsertUnsettledBatchesForInvoice]

@TerminalID varchar(8),
@BatchNumber int,
@SettledAmount money

as


insert into GeneratedInvoiceBatches (GenerationDate,TerminalID,BatchNumber,SettledAmount,isPayment,isHSBCFile,paymentdate)
values
(GetDate(),@TerminalID,@BatchNumber,@SettledAmount,1,1,getdate())

问题有时它会在三个月内插入一次重复的行。有人可以确定这个问题吗?它与复选框控件有关吗?我怎样才能避免这种重复?

1 个答案:

答案 0 :(得分:0)

我的猜测是按钮被快速连续点击两次。在调用数据库插入后,您可以取消选中If-Then中的框吗?这样,第二次点击将找不到复选框。