Cześć, mam aplikację, w której muszę wyeksportować dane siatki na stronie do innej siatki na innej stronie.

Moja logika jest taka, że ​​mam siatkę z polami wyboru ........ i mam administratora i 3 użytkowników ... mam jedną stronę dla "administratora" i jedną stronę dla innych "3 użytkowników", kiedy się logują są przenoszeni do ich własnej strony.....kiedy administrator loguje się, ma siatkę wypełnioną danymi z polami wyboru.......

       1)now the "admin" logins and visits his page his page looks like this
        he has a button called assign work and a dropdownlist binded with three users                      names.
       2)The admin selects some data using checkbox and selects the username from the dop down list ,and clicks on assign work button.
        3)In the same way he does for other two users....
       4)Here all the users have same page when user 1 logins he should be seeing only the  work assigned to him by admin,when user two logins his work should be shown.

Czy ktoś może mi powiedzieć, jak to zacząć ... jak powinienem przygotować bazę danych i jej użyć .... i czy ktoś może dostarczyć mi wymagany kod ... będzie dla mnie pomocny ...

Z góry dzięki chłopaki...

1
SoftwareNerd 14 luty 2012, 12:34

2 odpowiedzi

Najlepsza odpowiedź

W celach informacyjnych sprawdź następujące elementy. To nie jest idealne rozwiązanie, trzeba zmodyfikować część referencyjną integralności itp. Po prostu podam jakiś pomysł na swoje wymagania.

--Projekt DB

-- 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);

---------w aspx masz stronę administratora i stronę użytkownika Na stronie administratora użyj kolumn z szablonami (lista użytkownika i lista zadań) dla listy rozwijanej użytkownika

SELECT USER_ID, USER_NM) FROM USERS WHERE ID <> 1 -- (only select non-admin user)

Dla listy rozwijanej zadań

SELECT ID, TASK_DESC FROM TASKS

-- przy aktualizacji zadania do każdego zdarzenia użytkownika odczytaj dane z siatki i zapisz w tabeli ASSINGMENTS

Dla strony użytkownika --

Po prostu odczytaj dane z tabeli ASSINGMENTS, połącz z tabelami UŻYTKOWNICY, ZADANIA i powiąż z 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
1
Thit Lwin Oo 14 luty 2012, 13:09

To zależy od Twojej bazy danych i schematu. Powinieneś utworzyć tabelę Work, która zawiera

  • Int Int.
  • Utworzone przez (identyfikator administratora)
  • Utworzono w dniu i godzinie
  • Temat i/lub uwagi varchar null

Następnie użyłbym tabeli relacji 1-n WorkAssignment, która przechowuje przypisanie użytkownika i dane wybrane przez administratora (co należy zrobić)

  • Int Int.
  • fiWorker (id przypisanego użytkownika)
  • fiWork (identyfikator rekordu w Work)
  • Temat i/lub uwagi varchar null (jeśli później chcesz zostawić komentarz dla tego użytkownika)
  • fiData int (linki do rekordu twojego GridView)
0
Tim Schmelter 14 luty 2012, 13:13