2013-01-22 2 views
0

웹 응용 프로그램의 데이터 테이블에로드 된 입력 csv 파일을 기반으로 SQL 테이블에서 삽입/업데이트/삭제 작업을 수행하려고합니다. 현재 CRUD 작업을 수행하기 위해 DataSet을 사용하고 있지만 DataSet보다 LINQ를 사용하면 어떤 이점이 있는지 알고 싶습니다. 나는 LINQ로 전환 할 필요가 있다면 코드가 줄어들고 좀 더 강하게 입력 될 것이라고 확신하지만 확신 할 수 없다. 모든 의견을 감사드립니다.테이블 업데이트 : 데이터 집합 또는 LINQ

편집

그것은 대량 작동하지 않습니다, CSV (200) 기록 최대를 포함 할 수 있습니다.

+1

잘못했으면 부적절한 경향이 있습니다. 이렇게하려면 dbms를 가져와야합니다. –

+0

데이터베이스가 SQL Server 인 경우 대량 작업에 SSIS를 사용할 수 있습니다. – flup

+0

@TonyHopkinson, 기존 응용 프로그램을 수정 한 것입니다. 그래서 여기에서 사용할 수있는 기술로 제한됩니다. 나는 SSIS가 이것에 이상적이라는 것을 알고 있지만 여기서는 옵션이 아닙니다. SQL Server 2005 이후로는 테이블 매개 변수를 전달할 수도 없습니다. – Sunny

답변

0

나는 매우 빠른 LumenWorks CSV reader을 사용했습니다. 그것은 IDataReader 인터페이스를 사용하여 데이터 추출을위한 자체 API를 가지고 있습니다. 다음은 codeplex.com에서 가져온 간단한 예제입니다. CSV 데이터를 매우 빠르게 읽을 수 있으므로 모든 CSV 프로젝트에이 파일을 사용합니다. 나는 그것이 실제로 얼마나 빨랐는지에 놀랐다.

이와 같이 독자가되면 데이터 판독기 API를 사용해야하므로 데이터 표가 더 쉽게 작동합니다 (결과 집합과 일치하는 DataTable을 쉽게 만들 수 있음). 일치하는 열을 통해 데이터를 열로 복사).

Entity Framework를 사용하는지 또는 다른 용도로 사용하는지, 사용중인 맛에 따라 LINQ에서 많은 업데이트가 느려질 수 있습니다. DataTable, IMHO가 빠를 것입니다. LINQ에 문제가 있었고 많은 개체로 추적을 변경했습니다 (POCO를 사용하지 않고 첨부 된 항목을 사용하는 경우). Lumenworks에서 CSV 파일을 가져 와서 DataTable에 복사하는 꽤 좋은 성능을 보았습니다.

+0

예, 저는이 오픈 소스 라이브러리와 또 다른 하나 인 FileHelpers를 발견했습니다. 그것은 확실히 내가 CSV 데이터 테이블로 구문 분석하는 데 도움이되지만 내 문제는 여기에 파싱 된 데이터를 기반으로 테이블에 대한 CRUD 작업을 수행하는 방법입니다. – Sunny

+0

아, 그래, 미안해. 위의 내 응답을 업데이트하겠습니다. –

+0

답변을 업데이트 해 주셔서 감사합니다. LINQ는 고려할 가치가없는 것 같습니다. XML 응용 프로그램에서 많은 코드를 제거하고 더 나은 오류 처리 기능을 제공하기 때문에 DataSet을 통해 XML 데이터 형식으로 목록을 전달하는 것을 고려하고 있습니다.DataSet을 사용하여 삽입/업데이트/삭제 중 오류가 발생하면 실패합니다. – Sunny

관련 문제