C # Хранение запроса SQL Select в переменную - PullRequest
0 голосов
/ 11 ноября 2011

Я использую VS2005 C # и SQL Server 2005.

У меня есть SQL-запрос, который я буду выполнять, и я хочу сохранить результаты, которые я получу из запроса.

Вот мой SQL-запрос:

SELECT DISTINCT EmployeeID FROM UserRoles WHERE ([Status] = 'DELETED')

Это вернуло мне список идентификаторов сотрудников со статусом «УДАЛЕНО». Я могу просматривать его через GridView, и он отлично отображается.

Но я хочу использовать этот результат (list of emp ID whose status='DELETED') и пробежаться по другой таблице, чтобы увидеть, существует ли такой же идентификатор emp в другой таблице, если да, сохранить его в другой БД или списке.

Я не совсем уверен, как мне сохранить результат из моего оператора select, представляющего собой список идентификаторов emp, чей status='DELETED', в строку или массив. После того, как мне удастся сохранить его, как мне получить один emp emp одновременно и просмотреть другую таблицу?

Мне нужна помощь опытного.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Как насчет запуска другого запроса:

SELECT DISTINCT UserRoles.EmployeeID FROM UserRoles 
INNER JOIN OtherTable ON OtherTable.EmployeeID = UserRoles.EmployeeID 
WHERE (UserRoles.[Status] = 'DELETED')

Должен вернуть всех сотрудников, которые удалены и существуют в OtherTable.

1 голос
/ 11 ноября 2011

Это действительно зависит от того, как вы читаете этот список ID сотрудников из базы данных. Я предполагаю, что вы читаете его, используя SqlDataAdapter, который заполняет DataSet или DataTable, который, в свою очередь, связывает вашу сетку:

List employeeIDs = new List (); // dataTable - это DataTable, который вы привязываете к вашей сетке foreach (строка DataRow в dataTable.Rows) { employeeIDs.Add (int.Parse (строка [0] .ToString ()); }

  List<int> query =
  (from eid in dataTable.AsEnumerable()
  select eid.Field<int>("EmployeeID")).ToList();

Если вы используете SqlDataSource ....

DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
List<int> query =
(from eid in dv.ToTable().AsEnumerable()
select eid.Field<int>("EmployeeID")).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...