简体   繁体   中英

How to loop through tables from SQL in c# without hardcoding

I'm creating a desktop application. I have 3 table (part time employees table, full time employees table and department table). The ID on department table is the foreign key.

I have created a connection string in my class. I'm trying to loop through the tables to get all departments that are assigned to employees, if a department is not assigned (delete it). I have the code in sql, but I want it in c#. Below is the sql code.

    SELECT  DepartmentName, DepartmentAddress
    FROM Department 
    WHERE ID IN 
    (SELECT DISTINCT(ID) 
    FROM 
    PartTimeEmployees
    );

If you simply want to DELETE departments that don't have a related employee, you can use an EXISTS :

DELETE D
FROM dbo.Department D
WHERE NOT EXISTS(SELECT 1
                 FROM dbo.Employee E
                 WHERE E.DepartmentID = D.ID);

There's no need to go any kind of "looping", as SQL is far better at doing these operations in a set-based way.

如果删除不在兼职员工表或全职员工表中的部门,那么您可以获得部门列表为 -

var departmentToDelete = departments.Where(d => !PartTimeEmployees.Any(emp => emp.DepartmentId == d.Id) && !FullTimeEmployees.Any(emp => emp.DepartmentId == d.Id)).ToList();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM