Adepa Acqosuah Banieh Ответов: 1

Как мне...отобразить данные в моей форме windows с помощью кнопки поиска и текстового поля поиска


У меня уже есть код под кнопкой поиска, но когда я отлаживаю и набираю IDnum, он ничего не отображает

Что я уже пробовал:

Вот как выглядит мой код:

Dim src As SqlCommand = sqlcommand("select * from Admission WHERE FolderNumber='"& txtFolder.Текст & "'", DBcon)
Дим РД как объект sqldatareader = ФОК.Метода executereader

Sinisa Hajnal

ПРЕЖДЕ ВСЕГО: НИКОГДА НЕ ДОВЕРЯЙТЕ ВВОДИМЫМ ПОЛЬЗОВАТЕЛЕМ ДАННЫМ. Google SQL-инъекция...или попробуйте ввести в текстовое поле следующий текст (без скобок): [ '; DROP TABLE ADMISSION; -- ]

Во-вторых, у вас есть читатель, это не значит, что вы можете автоматически заполнить переменную, вам нужно rd.GetString или какой-то другой тип идентификатора. Погуглите его, это должно быть быстрее, чем вы ждете ответа здесь. Сделайте немного работы сами, прежде чем спрашивать.

phil.o

Отлично сработано... вы только что предложили пользователю ввести что-то, что на самом деле отбросит его/ее таблицу. Хотя привлечение внимания пользователя к SQL-инъекциям - это хорошо, вы должны позаботиться о том, чтобы сделать это не двусмысленно.

1 Ответов

Рейтинг:
9

Lockwood

Вот основная оболочка.
Вам нужно будет строить вокруг него, но это основа для вас, чтобы работать.

Using src As New SqlCommand("SELECT * FROM Admissions WHERE FolderNumber = @FolderNumber",DBCon)
    src.Parameters.AddwithValue("FolderNumber",txtFolder.Text)
    DBCon.Open
    Using rd = src.ExecuteReader
        Do While rd.Read
            Debug.Print(rd("FieldName"))
        Loop
    End Using
End Using


Adepa Acqosuah Banieh

@Lockwood большое спасибо за код ответа, но я смог исправить его по-другому

Lockwood

Отлично.

Однако вы должны серьезно подумать об атаке SQL-инъекций, надеюсь, ваше другое решение учтет это.