为什么按钮单击两次插入数据 [英] why button click insert data twice times

查看:98
本文介绍了为什么按钮单击两次插入数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个按钮,我将它添加到数据行中,但是,我只添加两行日期,当单击此按钮时,它会给我4个数据,每个日期被插入两次,表示日期A拒绝日期B拒绝日期A和书房日期B,什么问题


i have this button which i add in row of data however, i only add two row of the date, when click this button it give me 4 data, each date is being inserted twice meaning date A den date B den date A and den date B, what the problem


Protected Sub Button2_Click(sender As Object, e As System.EventArgs) Handles Button2.Click

      Dim rowIndex As Integer = 0
      Dim sc As New StringCollection()
      Dim sc1 As New Date
      If ViewState("CurrentTable") IsNot Nothing Then
          Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
          Dim drCurrentRow As DataRow = Nothing
          If dtCurrentTable.Rows.Count < 10 Then
              For i As Integer = 1 To dtCurrentTable.Rows.Count
                  'extract the TextBox values

                  Dim box5 As TextBox = DirectCast(Gridview3.Rows(rowIndex).Cells(1).FindControl("TextBox5"), TextBox)


                  Dim box7 As Date = Convert.ToDateTime(box5.Text)


                  Dim myConn As New SqlConnection
                  Dim myCmd As New SqlCommand
                  myConn.ConnectionString = ConfigurationManager.ConnectionStrings("mydatabase").ConnectionString
                  Dim cmd As String
                  cmd = "Insert into Date values (@date) "
                  myCmd.CommandText = cmd
                  myCmd.CommandType = CommandType.Text

                  myCmd.Parameters.Add(New SqlParameter("@date", box7))


                  myCmd.Connection = myConn
                  myConn.Open()
                  myCmd.ExecuteNonQuery()
                  myCmd.Dispose()
                  myConn.Dispose()
                  rowIndex += 1
              Next


          End If
      Else
          '   lblMessage.Text = "Cannot save as there no information recorded"
          MsgBox("failed")
      End If
  End Sub



<asp:GridView ID="Gridview3" runat="server" AutoGenerateColumns="False" 

                Height="89px" ShowFooter="True" Width="303px">
                <Columns>
                    <asp:BoundField DataField="RowNumber" HeaderText="No of Available:" />
                    <asp:TemplateField HeaderText="New Date Available :">
                        <ItemTemplate>
                            <asp:TextBox ID="TextBox5" runat="server" />
                            <AjaxToolkit:CalendarExtender ID="calExtender6"  runat="server" 

                                Format="dd/MM/yyyy" OnClientDateSelectionChanged="CheckDateEalier" 

                                TargetControlID="TextBox5" />
                        </ItemTemplate>
                        <FooterStyle Height="22px" HorizontalAlign="Right" />
                        <FooterTemplate>
                            <asp:Button ID="ButtonAdd" runat="server" onclick="ButtonAdd_Click" 

                                Text="Add New Row" />
                        </FooterTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView> 



Protected Sub ButtonAdd_Click(sender As Object, e As System.EventArgs)
      AddNewRowToGrid()
  End Sub

推荐答案

执行以下操作.设置一个最终插入数据的断点.在调试器中对其进行测试.当程序在断点处停止时,打开调试"窗口调用堆栈".它会告诉您每种情况下每个呼叫的来源.这样,您很快就会发现问题的根源.

请先使用Debugger,然后再问类似的问题.每当您几乎不关心代码的运行时行为时,都可以使用Debugger.

—SA
Do the following. Set a break point where data is finally inserted. Test it under debugger. When a program stops on a break point, open Debug window "Call Stack". It will show you where each call comes from in each case. This way, you will find a source of a problem pretty soon.

Please, use Debugger before asking a question like that. And use Debugger every time you have a slightest concern about run-time behavior of your code.

—SA


这篇关于为什么按钮单击两次插入数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆