如何比较DataTable和字符串(如果存在)

问题描述:

我在我的表Brands中有一个数据,其中包含SmartSun。程序上载CSV,但在上传程序需要以CSV列Brands检查CSV是否有包含也不SmartSun到目前为止行之前,我没有这个如何比较DataTable和字符串(如果存在)

DataTable dtCsv = new DataTable(); 
int matchCount; 
using (CsvReader csvReader = new CsvReader(new StreamReader(fs), true)) 
    { 
     dtCsv.Load(csvReader); 
    } 

if (dtCsv.Select("BATCH_LEADS<>'" + batch.LeadBatch + "'").Count() != 0) return false; 

foreach (Brand brands in BrandList) 
{ 
     matchCount = dtCsv.Select("BRAND<>'" + brands.BrandName + "'").Count(); 
} 

,但我知道我在这样做是错误的,因为matchCount将包含列中不匹配的计数。请帮帮我。我使用C#,这是一个asp.net MVC项目

+0

这是一个非常糟糕的问题。请阅读常见问题解答以了解如何编写好的问题 - 我们可以帮助您解决的问题。 –

+0

CSV内容仍不清楚 - 请添加更多详细信息以揭示给定代码的错误。阅读[问]和[麦克]找出你需要包括什么。 –

+0

@ SamAxe抱歉,我的解释被我删除。 –

起初我不知道数据表使用类似查询语句。所以我这样做了。它适用于我

int matchCount = 0; 
using (MappingDBUnitOfWork muw = new MappingDBUnitOfWork(new MappingEntities())) 
      { 
       var BrandList = muw.BrandRepository.GetAll(); 
       foreach (Brand brands in BrandList) 
       { 
        matchCount += dtCsv.Select("BRAND ='" + brands.BrandName + "'").Count(); 
       } 
      } 

      if (matchCount != dtCsv.Rows.Count) return false; 

下面是不是确切的代码,但我希望它会显示正确的方向。也就是说一旦我们得到了来自CSV的数据表中的数据,我们还可以检查象下面这样:

示例代码:

DataTable dtCsv = new DataTable(); 
int matchCount; 
using (CsvReader csvReader = new CsvReader(new StreamReader(fs), true)) 
    { 
     dtCsv.Load(csvReader); 
    } 

    for (int rowcount = 0; rowcount < dtCsv.Rows.Count; rowcount++) 
    { 
      //brands is the column name in excel 
     if(dtCsv.Rows[rowcount]["brands"].ToString() != "sum" || dtCsv.Rows[rowcount]["brands"].ToString() != "smart") 
     { 

       //do some logic 
      } 
    } 

希望它是有益的

感谢

Karthik