我使用的是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并运行另一个表?
我需要经验丰富的帮助。
答案 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();