DataSet 개체는 ADO.NET의 연결 해제 및 분산 데이터 솔루션을 지원하는 핵심 개체로 DataTable에서 데이터를 가져오거나 데이터를 복사하는 등 다양한 용도로 사용됩니다. 또는 DataRow의 데이터는 DataSet 및 DataTable의 복사만 지원하므로 요소의 구조뿐만 아니라 요소의 데이터도 복사할 수 있습니다. 관련 복사 방법은 없습니다. 아래에서는 데이터 요소 중복 문제에 대해 간략하게 소개하겠습니다.
DataTable sourceTable;
DatatDataRow sourceRow;
DataRow tempRow;
DataSet souceDataSet
데이터 세트 object = souceDataSet.Copy();//심층 복사
DataSet object = souceDataSet.Clone();//얕은 복사, 스키마만 복사
DataTable 복사
objectTable = sourceTable .Copy();/ / 전체 복사
objectTable = sourceTable .Clone();//얕은 복사, 스키마만 복사
DataRow 복사
이 오류는 프로젝트 개발에서 자주 발생합니다. "이 행은 이미 다른 테이블에 속해 있습니다." 이 오류가 발생한 구문은 다음과 같습니다.
objectTable .Rows.Add(SourceDataRow);
DataRow DataTable이 참조로 호출되기 때문에 이유를 분석했습니다. 따라서 한 테이블에 행이 있으면 다른 테이블에 추가할 수 없습니다.
특정 메서드:
1 ImportRow 메서드: public void ImportRow( DataRow DataRow);
objectTable = sourceTable.clone();//동일한 열이나 관계를 가지려면 먼저 테이블의 스키마를 복사해야 합니다. !
foreach(sourceTable의 DataRow oRow)
{
objectTable.ImportRow(oRow);//objectTable에 새 행을 추가하고 sourceRow 값을 복사합니다. 테이블의 구조는 동일해야 합니다. !
}
________________________________________________________________________________
2. DataTable의 각 열을 반복합니다.
DataRow aDataRow = objectTable.NewRow()
foreach(DataColumn aDataColumn in sourceTable.Columns)
{
aDataRow [aDataColumn.ColumnName] = sourceTable[i][aDataColumn.ColumnName];
}
objectTable.Rows.Add(aDataRow)
3.objectTable.Columns.Add( " id");//같은 구조일 필요는 없습니다. 필요한 열만 복사하면 됩니다!
Object [] myArry = new Object [1];
foreach (DataRow oRow in sourceTable)
{
tempRow = objectTable.NewRow();//이 메서드를 호출해야 합니다!
myArry[0] = oRow["id"];//myArry의 소스 테이블에 id 열이 없는 경우 , 오류가 보고됩니다!
tempRow.ItemArray = myArry; //ItemArray 속성은 Object형 배열이며, 프로그램의 필요에 따라 여러 열의 데이터를 복사할 수 있습니다! /이 메서드를 호출해야 합니다. 그렇지 않으면 DataRow의 데이터가 표시되지 않습니다.
__________________________________________________________________________________________
4. LoadDataRow 메서드: public DataRow LoadDataRow(Object[] value,bool fAcceptChanges)
Object [] newRow = new Object[ 3];
// 객체 배열의 값 설정
newRow[0] = "Hello"
newRow[1] = "World"
newRow [2] = "two";
DataRow myRow;
ObjectTable.BeginLoadData();
// 테이블에 새 행 추가
myRow = ObjectTable.LoadDataRow(newRow, true);/ /플래그는 새 행 추가를 나타내는 true로 설정되어야 합니다.
ObjectTable.EndLoadData()
이 방법은 단순히 기존 행의 데이터를 복사하여 새 행을 추가하는 경우에는 더 복잡합니다. 구체적인 사용법은 SDK 문서를 참고하시기 바랍니다.