【发布时间】:2015-04-23 23:59:23
【问题描述】:
我有一个GridView,其中的行包含.net checkboxcontrol。用户将检查行并在单击按钮时将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())
问题是有时它会插入重复的行,比如三个月一次。有人可以确定问题吗?它与复选框控件有关吗?如何避免这种重复?
【问题讨论】:
-
哪个值确定记录是重复的?
-
如果不是在任何点击时重复的内容..而不是通过意外点击两次.. dgv 中的同一行,您可以检查 db 中是否存在警告..
-
是的,好像我必须使用 NOT EXISTS 和子查询来检查是否有重复
标签: sql-server vb.net checkbox duplicate-data