XML과 DataGridView에서 데이터 취득하여 중복검사해보자

 

// 기존 파일에서 ID를 취득하여 등록하고자 하는 Alarm내에 중복된 ID가 있는지 확인
private bool IsAlarmID_Overlap_onXml()
{
// row 개수를 읽어온다. 전체 개수 - 1 = 실제 개수
int nMaxRow = dgv_Register.Rows.Count - 1;
int[] nAppend = new int[nMaxRow];

// 정보를 취득하여 xml 파일에 저장한다.
for (int i = 0; i < nMaxRow; i++)
nAppend[i] = Convert.ToInt32(dgv_Register.Rows[i].Cells[ID].Value);

// Table 하위 항목 내에서 동일 ID를 찾아 신규 등록하고자 하는 ID와 비교한다.
var result =
from el in _xmlAlarmTable.Elements(_szTable)
from id in nAppend
where (int)el.Element(_cXml.szRegFd[ID]) == id
select id;

// xml 파일의 ID와 중복된 것의 합.
int nOverlapCnt = result.Count<int>();

StringBuilder szbTemp = new StringBuilder(1024);
// 중복된 것이 발견되면, 그 정보를 출력한다.
if (nOverlapCnt != 0)
{
foreach (int id in nAppend)
{
szbTemp.Append("[" + id + "],");
}

MessageBox.Show(_szXmlPath + " File & Registered Alarm Data Overlap!"
+ "\r\nOverlap Count : " + nOverlapCnt
+ "\r\nOverlap ID : " + szbTemp);
return true;
}

return false;
}

 

+ Recent posts