У меня есть GridView
с строками, содержащими .net checkbox
контроль. Пользователь будет проверять строки и при нажатии на кнопку она insert
в checked
строк в таблице GeneratedInvoiceBatches
Повторяющаяся вставка в DB
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 предупреждение .. – CristiC777
Да Кажется, что я должен использовать НЕ СУЩЕСТВУЮЩИЕ с подзапросом, чтобы проверить, есть ли дубликаты – Nuke