C#将SQL选择查询存储到变量中

时间:2011-11-11 07:08:05

标签: c# sql sql-server visual-studio visual-studio-2005

我使用的是VS2005 C#和SQL Server 2005。

我有一个SQL查询,我将执行,我希望存储我将从查询中获得的结果。

以下是我的SQL查询:

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

这返回了一份状态为“DELETED”的员工ID列表。我可以通过GridView查看它,它显示得很完美。

但我想要的是使用此结果(list of emp ID whose status='DELETED'),并运行另一个表以查看另一个表中是否存在相同的emp ID,如果是,则将其存储在另一个数据库或列表中。 / p>

我不确定如何存储select语句的结果,select语句是status='DELETED'到字符串或数组中的emp ID列表。在我设法存储它之后,我如何一次获得一个emp ID并运行另一个表?

我需要经验丰富的帮助。

2 个答案:

答案 0 :(得分:2)

如何运行另一个查询:

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

应该返回已删除并存在于OtherTable中的所有员工。

答案 1 :(得分:1)

这实际上取决于您如何从数据库中读取此员工IDS列表。我将假设你使用SqlDataAdapter读取它,它填充DataSet或DataTable,然后你绑定到你的网格:

列出employeeIDs = new List();     // dataTable是绑定到网格的DataTable     foreach(dataTable.Rows中的DataRow行)     {         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();