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

How to compare DataTable and string if it exist

我的 table Brands 中有一个数据包含 SmartSun。该程序上传一个 csv,但在上传 csv 之前,程序需要检查 csv 的 Brands 列,如果有一行不包含 SmartSun 到目前为止我做了这个

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 项目

下面不是确切的代码,但我希望它能指明正确的方向。那就是一旦我们从 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
          }
    }

希望对您有所帮助

谢谢

卡尔提克

起初我不知道数据table使用类似查询的语句。所以我这样做了。对我来说效果很好

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;