2013-12-13 3 views
0

У меня есть таблица пользователя, таблица ролей, которая содержит roleID и имя пользователя, и таблицу userrole с идентификатором roleID и идентификатором пользователя. Пользователи могут иметь несколько ролей, поэтому для моего запроса выбора может быть несколько записей. Есть ли способ, с помощью которого я могу объединить каждый roleID в одну строку с новым столбцом, добавленным для дополнительного идентификатора roleID, если он существует, либо через sql proc, либо в VB? У меня есть gridview, который я буду использовать для управления ролями, у него есть 3 столбца для ролей, каждый из которых имеет флажок, который позволяет добавлять или удалять роль.объединить несколько строк/столбцов в одну строку SQL ASP.NET

+0

Вы должны отделить логику отображения от схемы базы данных. извлеките свои данные «как есть», затем воссоздайте новый объект источника данных (например, новый DataTable). – aifarfa

ответ

4

Не храните несколько элементов в одной колонке базы данных; вы нарушаете первую нормальную форму, что не является хорошим дизайном базы данных.

В вашем случае вы можете создать представление, которое объединяет ваши несколько ролей в один «столбец» (с разделителями-запятыми), а затем основывает источник данных gridview на новом представлении вместо базовой таблицы.

Вы можете сделать то же самое с помощью хранимой процедуры.

+0

. На самом деле я не хотел разграничить их в один столбец, вместо этого добавьте дополнительный столбец в строку только в том случае, если у пользователя несколько ролей. Я вижу вашу точку зрения, и я хочу, чтобы она нормализовалась. – Bob

+0

Просмотр или сохраненная процедура, вероятно, будут вашим решением Bob – sh1rts

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