2013-04-04 2 views
0

Я пытаюсь заполнить Combobox из базы данных MySQL; но ничего не получаю. Ниже приведен код.VB.NET: Population ComboBox с использованием MySQL Query

Таблица: Класс

Столбцы: Код, Состояние

sqlstr = "SELECT * FROM Class WHERE State= Not Started" 
DBCmd = New MySql.Data.MySqlClient.MySqlCommand(sqlstr, DBConn) 
DBDR = DBCmd.ExecuteReader 
While (DBDR.Read()) 
CB_Class.Items.Add(DBDR("Code")) 
End While 
DBCmd.Dispose() 
DBDR.Close() 

Я считаю, что результат не так, потому что есть по крайней мере, 2 записи с их государственными значениями, установленными в «Не начато». Что не так? Что-то не так с тем, как я написал «State = Not Started»?

+0

Программа работает нормально, пока не достигнет DBDR = DBCmd.ExecuteReader. Это не выполняется дальше. –

ответ

1

Текст команды не представляется правильным. В нем нет единой цитаты вокруг строки для поиска

sqlstr = "SELECT * FROM Class WHERE State='Not Started'" 
             ^  ^

Если State этого поля строки, то каждый поиск по ней должен быть заключен в одинарных кавычках.
Остерегайтесь потенциальных проблем, когда строка для поиска содержит одиночную кавычку.

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

+0

Спасибо большое! У меня это есть! –

Смежные вопросы