I'm trying to generate a random number that's not in the database. If the randomly generated number happens to already be in the database, a message box appears saying the number exists. When you click Ok, it generates another number and if it's still in the database, it will repeat the same process. With my code, it keeps showing the message box and generating a number even after it has already generated a number that's not in the database. This is my code:

Code:
Private Sub BtnOrder_Click(sender As Object, e As EventArgs) Handles BtnOrder.Click
        Dim rand As New Random
        Dim num As Integer

        num = rand.Next(1, 30)
        TxtOrder.Text = "#" + num.ToString("0000")
        BtnOrder.Enabled = False

        Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Daily Sales.accdb;")
        Dim command As New OleDbCommand("SELECT [Order No] FROM [Table1] WHERE [Order No] = orderno", connection)
        Dim orderParam As New OleDbParameter("orderno", Me.TxtOrder.Text)
        command.Parameters.Add(orderParam)
        command.Connection.Open()
        Dim reader As OleDbDataReader = command.ExecuteReader()
        Do While reader.HasRows = True
            If reader.HasRows = False Then
                Exit Do
            End If
            MessageBox.Show("Order number exists.", "Invalid Order Number")
            num = rand.Next(1, 30)
            TxtOrder.Text = "#" + num.ToString("0000")
        Loop
        command.Connection.Close()
    End Sub