0
FormMain_loadサブ内にこのコード行があります。同じキーを持つアイテムがすでにクリアされていてもエラーが追加されました
最初の読み込み時に、プログラムは正常に動作します。それから、別のフォームを開き、FormMainをもう一度呼び出そうとします。今回は、フォームにエラーが表示されました。同じキーのアイテムが既に追加されています。私は、サブの最初の行に辞書をクリアしようとしましたが、それでも同じエラーが表示されました。それから、私はまた、それをもう一度追加する前に辞書をクリアしようとしましたが、それでも失敗しました。奇妙なのは、エラーが発生する前に辞書カウントが0であることがメッセージボックスに示されています。
query = "SELECT * FROM transaction WHERE isPaid=0"
If myConn.State = ConnectionState.Closed Then
myConn.Open()
End If
If myCommand Is Nothing Then
myCommand = New MySqlCommand(query, myConn)
Else
myCommand.CommandText = query
End If
myDataReader = myCommand.ExecuteReader
If myDataReader.HasRows Then
While myDataReader.Read()
transactionUnpaid.Enqueue(myDataReader("transaction_id"))
End While
myDataReader.Close()
roomList.Clear()
MsgBox(roomList.Count())
For Each a As Integer In transactionUnpaid
query = "SELECT * FROM room_ol WHERE transaction_id=" & a
If myConn.State = ConnectionState.Closed Then
myConn.Open()
End If
If myCommand Is Nothing Then
myCommand = New MySqlCommand(query, myConn)
Else
myCommand.CommandText = query
End If
myDataReader = myCommand.ExecuteReader
myDataReader.Read()
roomList.Add(myDataReader("room_id"), myDataReader("transaction_id"))
myDataReader.Close()
Next
End If
If Not myDataReader.IsClosed Then
myDataReader.Close()
End If