2015-04-23 3 views
0

У меня есть 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()) 

Проблема иногда вставляет дубликат строки говорят один раз в три месяца. Может ли кто-нибудь определить проблему? Это как-то связано с элементом управления флажком? Как я могу избежать этого дублирования?

+0

Какое значение определяет, что запись дублируется? –

+1

Если это не что-то дублирующее при любом щелчке .., чем при двойном щелчке случайно в той же строке в dgv, вы можете проверить, существуют ли в db предупреждение .. – CristiC777

+0

Да Кажется, что я должен использовать НЕ СУЩЕСТВУЮЩИЕ с подзапросом, чтобы проверить, есть ли дубликаты – Nuke

ответ

0

Мое предположение состоит в том, что кнопка дважды щелкает дважды подряд. Можете ли вы снять флажки внутри вашего If-Then сразу после вызова вставки DB? Таким образом, второй щелчок не обнаружит отмеченных полей.

Смежные вопросы