что не так с моим кодом? используя SQL Server 2008 - PullRequest
0 голосов
/ 01 ноября 2011

что не так с моим кодом?

Dim x As Integer
    Dim sql As String
    ModConnectDb.OpenDatabase()
    conn.Open()
    For x = 200 To 208
        sql = "select * from ttransaction where no_room= 'x' and status= 'checkin '"
        cmd = New SqlCommand(sql, conn)
        dtReader = cmd.ExecuteReader
        If dtReader.HasRows = False Then
            cbo_numberroom.Items.Add(x)
        End If
        dtReader.Close()
    Next

Я подаю заявку в больницу. VIP номер имеет номер от 200 до 208 Целью этого кода является. Если радиокнопка выбрана, кто является VIP, он проверит, есть ли номер 200 в базе данных и есть ли статус номера регистрации. если да, то число 200 больше не появится в выпадающем списке noRoom.

но результаты этого кода. хотя 200 был заполнен, все еще появляются в выпадающем списке, чтобы выбрать номер комнаты Я очень надеюсь, что помощь

Спасибо, прежде чем

1 Ответ

4 голосов
/ 01 ноября 2011
  1. Вы не используете параметризованные запросы
  2. После 'checkin' есть пробел, которого может не быть в базе данных, поэтому нет совпадений
  3. Выне использовать номер комнаты в качестве параметра для запроса SQL
  4. Самое главное: вы не говорите нам, в чем ошибка!

Я вижучто ты пишешь no_room='x'.Это проверяет, есть ли символ «x» в столбце no_room вашей базы данных.

Если вы хотите проверить, находится ли комната с номером x в базе данных, вы должны использовать

cmd = New SqlCommand("SELECT * FROM tTransaction WHERE no_room = @roomNumber AND status = 'checkin'", conn)
cmd.Parameters.AddWithValue("@roomNumber", x)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...