【问题标题】:I want to display the missing (non-matching) records我想显示丢失(不匹配)的记录
【发布时间】:2010-04-20 13:08:15
【问题描述】:

有没有办法编写下面的 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)

在 c# .net 代码中使用数据视图或数据关系或其他什么?

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

谢谢, 埃里克

【问题讨论】:

    标签: c# .net-3.5


    【解决方案1】:

    如果您已经获得了该查询,则可以将该文本作为 SQL 命令传递,然后将结果作为数据集拉回。最好将查询设置为存储过程,然后执行相同的步骤(调用存储过程比手动编写 SQL 更简洁)。

    如果您想要一种完全不使用 SQL 的方法,您可以使用 LINQ 获取您的 ASSETS_MASTER 序列号的 IENUMERABLE 和您的资产记录的另一个 IENUMBERABLE。然后是这样的:

    foreach(资产中的资产资产) { if(!ASSETS_MASTER_SERIALSNOS.CONTAINS(asset.SerialNumber)) { //做任何事 } }

    【讨论】:

    • LINQ?然后:var nonMatching = ASSETS.Where( asset => !ASSETS_MASTER_SERIALSNOS.CONTAINS(asset.SerialNumber) )/*.ToList()*/;
    • 好的,那么在 .net 3.5 c# web 应用程序中几乎不知道如何拼写“linq”之间的差距是什么?如果可以的话,请向我指出一些对我有益的教程。很多不同的帖子告诉我使用 Linq,所以这是不可避免的(必须找到一种方法来停止与变化作斗争...... :))
    • @sr pt-true。 @Eric - 我建议下载 LinqPad(在 google 或 bing 上查找)。该站点还有一组关于基本 LINQ 语法和用法的很好的教程。至于将其连接到您的 Web 应用程序中,它实际上就像任何其他形式的连接一样。我建议使用 EF(右键单击您的项目,添加->新项目->ADO.NET 实体模型)或 Linq-2-SQL(相同的过程,但查找 Linq-to-Sql 类)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多