2013-10-01 4 views
1

Я создаю форму, которая имеет dropdownlist для отдела.Поле данных со списком значений в нем

Место, в котором я работаю, имеет только поле с 50 отделами в самой области. Если я запрошу это поле и верну его в строку в файле CS, , как я могу разбить разные отделы, привязывая к ddl?

Некоторые отделы имеют два имени, у которых есть пробел между словами.

+0

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

+0

нет слова «слово слово слово слово», и некоторые из этих отделов состоит из двух слов – KBriz

+0

Как вы можете определить, является ли отдел двумя словами? Использование string.Split ("") будет разделять каждое слово, но невозможно сохранить случайные слова вместе. Вам действительно нужно исправить базу данных, поставив каждый отдел в отдельную строку. – Vulcronos

ответ

2

Все, что не соответствует нормализации таблицы, приведет к взлому. Я бы подумал о создании новой таблицы: Department. Там вы храните каждое из значений в своей строке. Это приведет к извлечению данных и, как сказал @Vulcronos, гораздо проще присоединиться к другому столу.

0

«Правильный» ответ заключается в том, чтобы изменить источник, чтобы правильно разграничить имена отделов.

Если вы не можете сделать это, и если список несколько статичным вы могли бы использовать «список исключений», чтобы указать отделы, которые должны остаться вместе:

string[] knownDepartments = new [] 
    { 
     "Human Resources", 
     "Community Services", 
     etc. 
    }; 

затем просто извлечь те из исходной строки перед разбором:

foreach(string dept in knownDepartments) 
    departments = departments.Replace(dept,""); 

затем проанализировать оставшиеся отделы (и липкости на известных отделов):

var departmentList = departments.Split(' ') 
           .Union(knownDepartments) 
           .ToList(); 
+0

Спасибо всем за вашу помощь и вклад, собираемся создать новую таблицу dept и очистить хотя бы минимальный беспорядок этой БД – KBriz

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