2010-04-20 53 views
0

有没有办法使用数据视图或数据关系或别的东西在C#.NET代码下面的SQL查询我想要显示的缺失(非匹配)记录

SELECT  dbo.Assets_Master.Serial_Number, dbo.Assets_Master.Account_Ident, dbo.Assets_Master.Disposition_Ident 
FROM   dbo.Assets_Master LEFT OUTER JOIN 
         dbo.Assets ON dbo.Assets_Master.Serial_Number = dbo.Assets.Serial_Number 
WHERE  (dbo.Assets.Serial_Number IS NULL) 

编程?

我有一个电子表格大约4k行和一个数据表应该有相同的记录,但如果没有,我想显示表中缺少(不匹配)的记录。

感谢, 埃里克

回答

0

如果你已经得到了查询,你可以通过该文本为SQL命令并拉回结果的数据集。更好的做法可能是将查询设置为存储过程,然后执行相同的步骤(调用存储过程比手工编写SQL更清洁)。

如果您想要一种无SQL的方式,您可以使用LINQ获取您的ASSETS_MASTER序列号的IENUMERABLE和您的ASSETS记录的另一个IENUMBERABLE。然后像这样:

 
foreach(ASSET asset in ASSETS) 
{ 
    if(!ASSETS_MASTER_SERIALSNOS.CONTAINS(asset.SerialNumber)) 
    { 
    //Do Whatever 
    } 
} 
+0

LINQ?然后:'var nonMatching = ASSETS.Where(asset =>!ASSETS_MASTER_SERIALSNOS.CONTAINS(asset.SerialNumber))/ *。ToList()* /;' – ANeves 2010-04-20 13:29:25

+0

好吧,那么几乎不知道如何拼写“linq”将它连接到.net 3.5 c#web应用程序中?如果可以的话,请将我指向一些可以使我受益的教程。 很多不同的帖子告诉我使用Linq,所以它是不可避免的(必须找到一种方法来阻止改变...... :)) – Eric 2010-04-20 13:51:26

+0

@sr pt- true。 @Eric - 我会推荐下载LinqPad(在谷歌或Bing上查找它)。该网站还有一套很好的关于基本LINQ语法和用法的教程。至于将它连接到您的网络应用程序,它就像其他任何形式的连接。我会建议使用EF(右键单击您的项目,添加 - >新项目 - > ADO.NET实体模型)或Linq-2-SQL(同样的过程,但查找Linq-to-Sql类)。 – AllenG 2010-04-20 15:10:36