C # Сохранение SQL-запроса Select в переменную

#c# #sql #sql-server #visual-studio #visual-studio-2005

#c# #sql #sql-сервер #visual-studio #visual-studio-2005

Вопрос:

Я использую 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 за раз и запустить через другую таблицу?

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

Ответ №1:

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

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

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

Ответ №2:

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

List employeeIDs = new List(); //DataTable — это DataTable, который вы привязываете к своей таблице foreach (строка DataRow в DataTable.Строки) { 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();