Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# 如何比较具有不同列的datatable_C#_System.data.datatable - Fatal编程技术网

C# 如何比较具有不同列的datatable

C# 如何比较具有不同列的datatable,c#,system.data.datatable,C#,System.data.datatable,我有EMP数据表,它包含500条如下记录: UserAceNumber UserID emp001 emp002 emp003 emp004 UserAceNumber UserID emp002 user002 emp004 user004 UserAceNumber UserID emp0

我有EMP数据表,它包含500条如下记录:

UserAceNumber     UserID    

emp001           
emp002         
emp003         
emp004         
UserAceNumber     UserID    

emp002           user002         
emp004           user004           
UserAceNumber UserID     
emp001       
emp002        user002   
emp003        
emp004        user004 
所有500条记录的userid都将为空

另一个Empdetails数据表包含一些记录,我将在该表中保留UserID,如下所示:

UserAceNumber     UserID    

emp001           
emp002         
emp003         
emp004         
UserAceNumber     UserID    

emp002           user002         
emp004           user004           
UserAceNumber UserID     
emp001       
emp002        user002   
emp003        
emp004        user004 
我需要EMP表中的结果如下:

UserAceNumber     UserID    

emp001           
emp002         
emp003         
emp004         
UserAceNumber     UserID    

emp002           user002         
emp004           user004           
UserAceNumber UserID     
emp001       
emp002        user002   
emp003        
emp004        user004 
在这两个表中,公共值都是UserAceNumber

我不能使用任何SQL查询,因为这些数据表来自webservices,也来自LINQ,因为我使用的是2005

如何做到这一点?我已经完成了合并,但我需要列,就像在EMP datatable中一样。

您可以使用datatable。选择query以实现此目的,输出将是datarow

var dataRow=dataTable.Select(string.Format("{0}='{1}'", primaryKeyColumnName, valueOfPrimaryKey));
有关API的更多信息,请参见

基本上,您要做的是在其中一个数据表上循环标识此数据表中的主键列使用该列在第二个数据表中查找相应的行。您可以使用该数据表。选择查询以实现此目的,输出将是一个数据行

var dataRow=dataTable.Select(string.Format("{0}='{1}'", primaryKeyColumnName, valueOfPrimaryKey));
有关API的更多信息,请参见


基本上,您要做的是在其中一个数据表上循环标识此数据表中的主键列使用它在第二个数据表中查找相应的行

这里我不能使用任何sql查询,因为这些数据表来自数据库-没有意义,大概你想写的不是来自数据库?我认为你最好的选择是更改数据库模式或创建一个合并这两者的视图,然后使用C从该视图或更新的模式中检索值。。。有很多方法可以实现这一点,在这里我不能使用任何sql查询,因为这些数据表来自数据库-没有意义,大概你想写的不是来自数据库?我认为你最好的选择是更改数据库模式或创建一个合并这两者的视图,然后使用C从该视图或更新的模式中检索值。。。有很多方法可以实现这个NICE方法,我会自己使用它:primaryKeyColumnName,valueOfPrimaryKey我应该给出什么?在这个如何与另一个DataTable进行比较中,无论每个DataTable中的不同键是什么,都可以让你从DataTable中选择必要的行NICE方法,我会自己使用它:primaryKeyColumnName,valueOfPrimaryKey我应该给出什么?在这篇文章中,如何与另一个datatable进行比较,无论每个datatable中的不同键是什么,都可以让您从datatable中选择必要的行