#c# #asp.net #drop-down-menu
#c# #asp.net #выпадающее меню
Вопрос:
У меня есть, DropDownList
которое связано с sqlDataSource
. Часть SQL-запроса является:
"Select (firstName " " SecondName " " LastName) AS Name"
DataTextField
для свойства DropDownList
установлено значение Name
.
Проблема в том, что если какое-либо из ( firstName
, SecondName
и LastName
) равно NULL
, DataTextField
свойство становится пустым.
Как я могу это исправить?
Комментарии:
1. Просто проверьте, является ли строка нулевой, и если да, присвойте ей значение,
""
или"no name"
и т. Д2. @Enfyve Ваше решение вообще не будет отображать имя. Что мне нужно: например, если строка базы данных имеет только имя и фамилию, я все равно хочу, чтобы имя отображалось в выпадающем списке.
Ответ №1:
Я использую что-то вроде этого. Вы должны проверить наличие нулевых значений и заменить их пустой строкой. Наконец, я заменяю 2 пробела на 1 в функции replace, чтобы учесть пустые вторые имена.
SELECT REPLACE(ISNULL(firstName, '') ' ' ISNULL(SecondName, '') ' ' ISNULL(LastName, ''), ' ', ' ') AS Name
Комментарии:
1. Это создает дополнительную нагрузку (хотя и небольшую) на базу данных, почему бы не проверить наличие null или пустой строки в результате запроса?
2. Потому что OP хочет получить результаты, даже если какой-либо из 3 столбцов равен нулю. Пустая строка в asp.net проблема здесь не в этом.
3. Понял, спасибо. Я неверно истолковал проблему как «любой из запросов», а не «любой из селекторов».
4. @VDWWD Большое вам спасибо. Это то, что я искал.