2

私の vb.net アプリケーションでは、あるテーブルから別のテーブルにデータをバックアップする必要があります。これが私のコードです

con2.Open()
txt2 = "select * from pension where empno='" & empno & "' ORDER BY year"
cmd2 = New SqlCommand(txt2, con2)
reader2 = cmd2.ExecuteReader()
While reader2.Read
    yr = reader2("year")
    totpension = reader2("total")
    If dr <> yr Then
        dcrg = 0
        comm = 0
    End If
    tot1 = dcrg + comm + totpension
    con3.Open()
    txt1 = "Insert into over1 values('" & empno & "','" & name & "','" & yr & "','" & dcrg & "', '" & comm & "','" & totpension & "','" & tot1 & "')"
    cmd3 = New SqlCommand(txt1, con3)
    cmd3.ExecuteNonQuery()
    con3.Close()
End While
reader2.Close()
con2.Close()

問題は、すべてのレコードを 2 回挿入することです。ORDER BY を削除しましたが、同じ問題が続きます。パラメータ化されたクエリを使用しても同じ問題があります。

誰かが私のコードの問題とその解決方法を説明できますか? 前もって感謝します

4

1 に答える 1

0

複数のこと、
年金テーブルに各従業員の単一のレコードがある場合は、 代わりに
使用しますif reader2.Readwhile reader2.Read

問題が解決しない場合 問題は、このメソッドを 2 回実行していることです。質問はどのように?

  1. メソッドなら。次に、このメソッドを2回呼び出している可能性があります
  2. イベントの場合は、このイベントを 2 回処理している可能性があります
    。そのため、イベントが発生したコントロール タグで、このイベントが呼び出されていることを確認してください。このような

    <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click"/>
    

    また、イベントのHandledプロパティを確認します

    Private Sub btnSubmit_Click(ByVal sender As Object, _
     ByVal e As StartEventArgs) Handles btnSubmit.Click
    

    属性を定義した場合は、イベントからOnClick削除する必要があります。Handles btnSubmit.Click

これが役立つことを願っています。

于 2013-02-18T10:36:22.367 に答える