Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有硬编码的情况下从c中的SQL循环表_C#_Sql Server - Fatal编程技术网

C# 如何在没有硬编码的情况下从c中的SQL循环表

C# 如何在没有硬编码的情况下从c中的SQL循环表,c#,sql-server,C#,Sql Server,我正在创建一个桌面应用程序。我有三张表:兼职员工表、全职员工表和部门表。部门表上的ID是外键 我已经在我的类中创建了一个连接字符串。我正在尝试循环遍历这些表,以获取分配给员工的所有部门,如果未分配部门,则将其删除。我有sql的代码,但我想要c的。下面是sql代码 SELECT DepartmentName, DepartmentAddress FROM Department WHERE ID IN (SELECT DISTINCT(ID) FROM

我正在创建一个桌面应用程序。我有三张表:兼职员工表、全职员工表和部门表。部门表上的ID是外键

我已经在我的类中创建了一个连接字符串。我正在尝试循环遍历这些表,以获取分配给员工的所有部门,如果未分配部门,则将其删除。我有sql的代码,但我想要c的。下面是sql代码

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

如果删除不在“兼职员工”表或“全职员工”表中的部门,则可以按以下方式获取部门列表:-

var departmentToDelete = departments.Where(d => !PartTimeEmployees.Any(emp => emp.DepartmentId == d.Id) && !FullTimeEmployees.Any(emp => emp.DepartmentId == d.Id)).ToList();
如果只想删除没有相关员工的部门,可以使用EXISTS:

删除D 来自dbo D部门 如果不存在,请选择1 来自dbo.Employee E 其中E.DepartmentID=D.ID;
不需要进行任何类型的循环,因为SQL更擅长以基于集合的方式执行这些操作。

您使用什么连接到数据库并读取数据?有不同的方法可以做到这一点,我不明白你想删除部门或员工?SqlConnection SqlConn=new SqlConnection;公共数据集SqlTable=新数据集;公共项目连接{SqlConn.ConnectionString=ConfigurationManager.ConnectionString[Employee].ConnectionString;}公共无效检索数据字符串命令{try{}捕获异常{}最后{SqlConn.Close;@AvinashKumar.I试图删除未分配给员工的部门。能否发布您的c代码并尝试解释代码中需要帮助的地方?