我是编程新手,所以这看起来有些简单,但我似乎无法弄清楚。
我正在尝试在值的一列中查找数据表中的重复值。
这是我试图做的。
DataRow[] dupresults = dt.Select("PROV_NEW");
TableIssues = string.Empty;
DataTable dtTemp = dt.DefaultView.ToTable(true, "NEW_PROV");
if (dupresults.Length == 0)
{
return true;
}
else
{
foreach (DataRow item in dupresults)
{
Console.WriteLine(item[1]);
TableIssues += "Provider Code is not unique for " + item[1].ToString() + ". Revise non-unique codes.\r\n\n\n\n";
}
return false;
}
好的,但我也在搜索它以确保 PROV_NEW 中也没有空字段。所以我不知道该放在哪里。我对 c# 很陌生。我上周才开始。我正在为我父亲的公司做副业。
private bool ValidateTable(DataSets.Setup.SETUP_MWPROVDataTable dt, out string TableIssues)
{
try
{
//NewCode not used for other row
DataRow[] result = dt.Select("PROV_NEW = ''");
DataRow[] dupresults = dt.Select("PROV_NEW");
TableIssues = string.Empty;
DataTable dtTemp = dt.DefaultView.ToTable(true, "NEW_PROV");
if (dupresults.Length == 0)
{
return true;
}
else
{
var duplicates = dt.AsEnumerable()
.Select(dr => dr.Field<string>("PROV_NEW"))
.GroupBy(x => x)
.Where(g => g.Count() > 1)
.Select(g => g.Key)
.ToList();
foreach (DataRow item in dupresults)
{
Console.WriteLine(item[1]);
TableIssues += "Provider Code is not unique for " + item[1].ToString() + ". Revise non-unique codes.\r\n\n\n\n";
}
return false;
}
if (result.Length == 0)
{
//TODO: Add Next Step for validation
return true;
}
else
{
foreach (DataRow item in result)
{
Console.WriteLine(item[1]);
TableIssues += "Provider code " + item[1].ToString() + " is blank. Add new Provider code for " + item[1].ToString() +".\r\n\n\n";
}
return false;
}
}
catch (Exception)
{
throw;
}
}
}