데이터 테이블 (원본)이 있으며이 데이터 테이블의 복사본이 만들어지고 (복사본) 일부 행은 DataGridView에서 수정됩니다.데이터 테이블 선택 메서드로 가져 오는 데이터row 인덱스에 데이터 테이블을 할당하고 해당 데이터 테이블을 업데이트하지 않음
수정이 끝나면 copy datatable의 수정 된 행을 사용하여 원본 datatable을 업데이트하는 것입니다.
DataTable source ;// it is population by database.
및 복사
DataTable copy = source.Copy(); // Here is the copy datatble.
있어서 같다 :
public static void UpdateData(DataTable source, DataTable copy)
{
foreach (DataRow row in copy.Rows)
{
if (row.RowState == DataRowState.Modified)
{
var relRow = source.Select("Id = '" + row["Id"] + "'");
if (relRow.Any())
{
//relRow[0] = row; //This statement is not udating row in the source dataTable.
foreach (var column in copy.Columns)
{
relRow[0][column.ColumnName] = row[column.ColumnName];
}
}
}
else if (row.RowState == DataRowState.Added)
{
//Performing some operations to for checking additional values. modiging 'row' with some relative data, and adding to source.
source.Rows.Add(row.ItemArray);
}
}
return source;
}
relRow[0] = row
같은 데이터 행 어레이의 첫 번째 요소의 행 객체를 할당은 소스 데이터 테이블을 갱신하지 않고, relRow [0]에서 debuggin 동안 수정 된 데이터를 보여줍니다.
데이터 테이블의 변경 내용을 반영하는 열 지정.
그래서 질문입니다. 이유는 relRow[0] = row
원본 데이터 테이블에서 업데이트되지 않습니다.
감사합니다.