Я застрял, пытаясь исправить эту ошибку, и слишком долго занимался этим. Я много искал в Google и искал этот сайт, но, похоже, не могу найти правильный ответ для себя, хотя существует много разных вариантов этого вопроса.
Я пишу графический интерфейс переднего плана, используя VB.Net с базой данных Access на заднем конце. БД имеет значения NULL в PartnerFirstName
, PartnerLastName
и Organization
в моей таблице партнеров. Я загружаю их в Datatable в своем приложении, чтобы пользователь мог их искать. Я только что узнал на прошлой неделе, что некоторые партнеры (со значениями NULL) не загружаются.
Код ниже:
("SELECT IDPartner, IIF(ISNULL(PartnerFirstName),'',PartnerFirstName) as PartnerFirstName, IIF(ISNULL(PartnerLastName), '', PartnerLastName) AS PartnerLastName, IIF(ISNULL(Organization), '', Organization) AS Organization, " & _
"Address1, City, State, Zip, Country, Active " & _
"FROM tblPartner " & _
"WHERE IDPartner like '%" & txtPartnerID.Text & "%' AND " & _
" PartnerFirstName like '%" & txtFirstName.Text & "%' AND " & _
" PartnerLastName like '%" & txtLastName.Text & "%' AND " & _
" Organization like '%" & txtOrganization.Text & "%' AND " & _
" Address1 like '%" & txtStreet.Text & "%' AND " & _
" City like '%" & txtCity.Text & "%' AND " & _
" State like '%" & txtState.Text & "%' AND " & _
" Zip like '%" & txtZipCode.Text & "%' AND " & _
" Country like '%" & txtCountry.Text & "%' " & _
"ORDER BY IDPartner, partnerlastname, partnerfirstname", cn)
Причина для like
заключается в том, что я хочу, чтобы поиск обновлялся в режиме реального времени на основе значений текстового поля формы. Это источник моей проблемы, поскольку по умолчанию они пусты, а в БД есть нули.
===================
РЕДАКТИРОВАТЬ:
Спасибо за первоначальные комментарии. Теперь я понимаю, что использовал неправильную функцию. IIF, предложенный Баро, теперь помогает мне разобраться с SQL, и это здорово!
Похоже, проблема, с которой я сталкиваюсь, когда записи не отображаются, связана с моим предложением WHERE. Если я удалю это, все записи загрузятся в мою таблицу данных. Когда я включаю предложение Where, как показано, записи будут исключаться со значениями NULL.
Я пытался использовать OR PartnerFirstName IS NULL
(а также другие поля), но это оставляет слишком много дополнительных результатов, которые также имеют значения NULL. Я не могу понять, что делать, чтобы разрешить поиск теперь, когда я знаю, что проблема в разделе «Где» инструкции.