35 개 이상의 열이있는 csv 파일을 가지고 있고 그 다음에 내 csv 판독기를 사용하여 데이터 테이블에 배치됩니다. 이름으로 4 열을 찾고 나머지는 제거하고 싶습니다. , 4 열은 임의의 인덱스에있을 수 있으므로 헤더의 이름을 검색하려고합니다.이름으로 데이터 열을 유지하고 DataTable 내 다른 데이터 열 제거
지금까지 나는이 있습니다
DataTable dataTable = new DataTable();
dataTable = CSVReader.CSVInput(filepath);
foreach(DataColumn dataColumn in dataTable.Columns)
{
if(dataColumn.ColumnName != "Cat" || dataColumn.ColumnName != "Dog" || dc.ColumnName != "Turtle " || dc.ColumnName != "Lion")
{
dataTable.Columns.Remove(dataColumn)
}
}
고양이, 개, 거북이와 사자 내가
을 유지하려는 열의 예는이 단지 첫 번째 열을 제거하고 말하는 오류를 표시됩니다 "수집이 수정되었습니다".
이렇게하면 datatable을 sqlbulkcopy 할 수 있습니다.
편집
당신이 그것에 열거하는 동안 당신은 컬렉션을 변경할 수 없습니다 메모리
감사합니다, 나는 다른 DataTable을을 만들 메모리가 부족하고, dataTable.columns.remove (를 DataColumn)이 단지 –
@MaxHughes 테이블에서 모든 열을 제거 - 반드시 그해야한다'&&'하지'||' 즉, if (dataColumn.ColumnName! = "Cat"&& dataColumn.ColumnName! = "Dog"&& dc.ColumnName! = "거북이"&& dc.ColumnName! = "Lion")'입니다. 나는 그 해결책을 가지고이 대답을 시도 할 것을 제안한다. – dbc
@dbc는 많은 차이를 만들 것이라고는 생각하지 못했지만 효과가있었습니다. 감사합니다! –