如何比较DataTable和字符串(如果存在)
问题描述:
我在我的表Brands
中有一个数据,其中包含Smart
或Sun
。程序上载CSV,但在上传程序需要以CSV列Brands
检查CSV是否有包含也不Smart
或Sun
到目前为止行之前,我没有这个如何比较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
项目
答
起初我不知道数据表使用类似查询语句。所以我这样做了。它适用于我
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
这是一个非常糟糕的问题。请阅读常见问题解答以了解如何编写好的问题 - 我们可以帮助您解决的问题。 –
CSV内容仍不清楚 - 请添加更多详细信息以揭示给定代码的错误。阅读[问]和[麦克]找出你需要包括什么。 –
@ SamAxe抱歉,我的解释被我删除。 –