我的GridView
行包含.net checkbox
控件。用户会检查行,点击按钮后会insert
表checked
中的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())
问题有时它会在三个月内插入一次重复的行。有人可以确定这个问题吗?它与复选框控件有关吗?我怎样才能避免这种重复?
答案 0 :(得分:0)
我的猜测是按钮被快速连续点击两次。在调用数据库插入后,您可以取消选中If-Then中的框吗?这样,第二次点击将找不到复选框。