프로그래밍에 익숙하지 않아 다소 간단 해 보일 수도 있지만 알아낼 수는 없습니다.중복 항목 찾기 C#
값의 한 열에서 데이터 테이블에있는 중복 값을 찾으려고합니다.
여기 내가 그걸 해보려고했다.
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;
}
}
}
루프에서 문자열을 연결하지 마십시오. 'StringBuilder'를 사용하십시오. 어쩌면 첫 번째 프로젝트에서는 중요하지 않을 수도 있지만 좋은 습관이 있습니다. –
무엇이 작동하지 않습니까? 오류가 있습니까? – FishBasketGordo
"필터 식 'PROV_NEW'이 부울 용어로 평가되지 않습니다."라는 오류가 계속 나타납니다. 그래서 나는 거기에서 무슨 일이 일어나고 있는지 정말로 모른다. – Kobrien