[C#] DataTable 이전값과 현재값 동기화 함수

C# DataTable 이전값과 현재값 동기화 함수

/// <summary>
/// DataTable안 현재/이전 값 동기화 
/// </summary>
/// <param name="dt">해당 데이터 테이블</param>
/// <param name="psDisplay">비교할 값</param>
public void GetChangedFieldRow(ref DataTable dt, params string[] psDisplay)
{
    string sBeforeValue = "";
    string sAfterValue = "";
    int nCol = dt.Columns.Count;
    
        foreach (DataRow dr in dt.Rows)
        {
            int nDiffCnt = 0;
            for (int i = 0; i < nCol; i++)
            {
                if (psDisplay.Contains(dt.Columns[i].Caption))
                    continue;

                sBeforeValue = dr[i, DataRowVersion.Original].ToString();
                sAfterValue = dr[i, DataRowVersion.Current].ToString();
                if (sBeforeValue != sAfterValue)
                    nDiffCnt++;
            }
            if (nDiffCnt == 0)
                dr.Delete();
        }

        dt.AcceptChanges();
}

댓글 남기기