Для справки, пожалуйста, проверьте следующее. Это не идеальное решение, нужно изменить некоторую ссылочную целостность и т. Д. Просто предоставьте вам некоторое представление о ваших требованиях.
- дизайн БД
-- user information
create table USERS (USER_ID INT IDENTITY PRIMARY KEY, USER_NM NVARCHAR(100) NOT NULL)
insert into USERS values ('Admin');
insert into USERS values ('User 1');
insert into USERS values ('User 2');
insert into USERS values ('User 3');
-- role description
create table ROLES_DESC (ID INT IDENTITY PRIMARY KEY, ROLE_ID INT NOT NULL, ROLE_DESC NVARCHAR(50) NOT NULL)
INSERT INTO ROLES_DESC VALUES (1,'Admin');
INSERT INTO ROLES_DESC VALUES (2,'User');
-- assing each user to at least one role
create table ROLES (ID INT IDENTITY PRIMARY KEY, USER_ID INT NOT NULL, ROLE_ID INT NOT NULL)
insert into ROLES (1,1) -- admin
insert into ROLES (2,2) -- User 1
insert into ROLES (3,2) -- User 2
insert into ROLES (4,2) -- User 3
-- task infomration
create table TASKS (ID INT IDENTITY PRIMARY KEY, TASK_DESC VARCHAR(100))
insert into TASKS values ('C# Programming');
insert into TASKS values ('Database Programming');
insert into TASKS values ('Match Homework');
-- admin can assing task to each user.. save here
create table ASSINGMENTS (ID INT IDENTITY PRIMARY KEY, USER_ID INT NOT NULL, TASK_ID INT NOT NULL, ASSING_DT DATETIME DEFAULT GETDATE())
insert into ASSINGMENTS (USER_ID,TASK_ID) values (2,1);
insert into ASSINGMENTS (USER_ID,TASK_ID) values (2,2);
insert into ASSINGMENTS (USER_ID,TASK_ID) values (3,1);
insert into ASSINGMENTS (USER_ID,TASK_ID) values (4,3);
--------- в aspx у вас есть страница администратора и страница пользователя
На странице администратора используйте шаблонные столбцы (выпадающий список пользователей и выпадающий список задач)
для пользователя выпадающий
SELECT USER_ID, USER_NM) FROM USERS WHERE ID <> 1 -- (only select non-admin user)
для выпадающего списка задач
SELECT ID, TASK_DESC FROM TASKS
- при обновлении задачи для каждого пользовательского события считывать данные из сетки и сохранять в таблицу ASSINGMENTS
Для страницы пользователя -
Просто прочитайте данные из таблицы ASSINGMENTS, объедините с таблицами USERS, TASKS, как следует, и свяжите их с gridview
SELECT A.TASK_ID, T.TASK_DESC, A.ASSING_DT
FROM ASSINGMENTS A
INNER JOIN TASKS T ON (A.TASK_ID = T.ID)
WHERE A.USER_ID = 2