【问题标题】:Compare list if it's in SQL table Column比较列表是否在 SQL 表列中
【发布时间】:2016-05-12 12:56:46
【问题描述】:

我有一个从网站抓取数据的控制台应用程序,这是抓取部分:

private static void getPageThumbLinks()
{
    thumbUrlsList = new List<string>();
    HtmlWeb web = new HtmlWeb();
    web.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36";
    foreach (string value in pageLinks)
    {

        HtmlDocument doc = web.Load("http://www.example.com/" + value);
        foreach (HtmlNode nodes in doc.DocumentNode.SelectNodes("//td[@class='searchResultsSmallThumbnail']/a"))
        {
            HtmlAttribute href = nodes.Attributes["href"];
            var hreflink = href.Value;
            thumbUrlsList.Add(hreflink);
            //Console.WriteLine(hreflink);
        }
        compareToSql();
    }
}

我有一个包含 URL 集合的列表,thumbUrlsList 和一个名为 Table 的 MSSQL Express 表和一个名为 link 的列。

是否可以将此列表与数据库link 列进行比较并检查它是否存在?

如果是这样的话,你能给我举个例子吗?
将不胜感激。谢谢。

【问题讨论】:

  • 是的,应该可以。你有pageLinks和数据库(链接栏)中的项目示例吗?

标签: c# sql visual-studio console sql-server-express


【解决方案1】:

假设你有一个已经存在于数据库中的链接列表是 dbList。

var dbList = new List<string>() { "Dave", "Steve", "Pete" };

还有你的新 thumbList

var thumbList = new List<string>() { "Dave", "Steve", "Pete", "Paul", "Mike" };

现在要获取数据库中不存在的 url 列表,请使用此

var newLinkList = thumbList.Except(dbList).ToList();

【讨论】:

    【解决方案2】:

    一个简单的例子。您可以使用 LINQ 来检查它是否存在。

    private static void getPageThumbLinks()
    {
        thumbUrlsList = new List<string>();
        HtmlWeb web = new HtmlWeb();
        web.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36";
        foreach (string value in pageLinks)
        {
    
            HtmlDocument doc = web.Load("http://www.example.com/" + value);
            foreach (HtmlNode nodes in doc.DocumentNode.SelectNodes("//td[@class='searchResultsSmallThumbnail']/a"))
            {
                HtmlAttribute href = nodes.Attributes["href"];
                var hreflink = href.Value;
                thumbUrlsList.Add(hreflink);
                //Console.WriteLine(hreflink);
    
                // Here is where you check if the DataTable has the link
                // Table is a DataTable containing the results of your query
                var containsLink = Table.AsEnumerable().Any(row => link == row.Field<string>("link"));
    
                if (containsLink) 
                {
                    // do something with it
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多