これがシナリオです。選択クエリがあり、フェッチされたすべてのデータを別のテーブルに挿入する必要があります。
forループを削除するとします。例: フェッチされたデータは id1、id2、id3 です。データベースに挿入されたデータは、id1、id2、id3 ではなく、id1、id1、id1 です。
sql = "SELECT * FROM dummy_violate WHERE res_month <> @month Or res_year <> @year"
cmd = New MySqlCommand(sql, con)
cmd.Parameters.AddWithValue("@month", DateTime.Now.ToString("MMMM"))
cmd.Parameters.AddWithValue("@year", DateTime.Now.ToString("yyyy"))
dr = cmd.ExecuteReader
While dr.Read
id += dr(0)
count += 1
End While
dr.Close()
If count > 0 Then
For i As Integer = 1 To count
sql2 = "INSERT INTO dummy_violate(res_id, res_month, res_year, is_paid)VALUES(@id,@month,@year,@paid)"
cmd = New MySqlCommand(sql2, con)
cmd.Parameters.AddWithValue("@id", id)
cmd.Parameters.AddWithValue("@month", DateTime.Now.ToString("MMMM"))
cmd.Parameters.AddWithValue("@year", DateTime.Now.ToString("yyyy"))
cmd.Parameters.AddWithValue("@paid", 0)
cmd.ExecuteNonQuery()
Next
ElseIf count = 0 Then
MsgBox("Wrong Query")
End If