CSV 데이터를 .NET DataTable에 효율적으로 로드
CSV 데이터를 DataTable에 로드하는 것은 데이터 처리 및 분석에서 일반적인 작업입니다. 이 문서에서는 CSV 파일에서 스키마를 만드는 데 중점을 두고 .NET의 기본 제공 기능을 사용하여 이를 달성하는 방법을 살펴봅니다.
표준 ADO.NET 기능 사용
표준 ADO.NET 프레임워크는 CSV 파일 읽기를 직접 지원하지 않습니다. 그러나 OleDb 공급자를 활용하여 스키마 정의 파일을 생성하여 CSV 데이터를 가져올 수 있습니다.
.INI 파일을 사용하여 스키마 생성
스키마 파일(schema.ini)을 생성하려면 다음 단계를 따르세요.
<code>[FileName.csv] Format=CSVDelimited ColNameHeader=True MaxScanRows=0</code>
코드 구현
다음 코드는 스키마 정의 파일과 함께 OleDb 공급자를 사용하여 CSV 데이터를 DataTable에 로드하는 방법을 보여줍니다.
<code class="language-csharp">using System.Data; using System.Data.OleDb; using System.Globalization; using System.IO; static DataTable GetDataTableFromCsv(string path, bool isFirstRowHeader) { string header = isFirstRowHeader ? "Yes" : "No"; string pathOnly = Path.GetDirectoryName(path); string fileName = Path.GetFileName(path); string sql = @"SELECT * FROM [" + fileName + "]"; using (OleDbConnection connection = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly + ";Extended Properties=\"Text;HDR=" + header + "\"")) using (OleDbCommand command = new OleDbCommand(sql, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.Locale = CultureInfo.CurrentCulture; adapter.Fill(dataTable); return dataTable; } }</code>
이 방법은 CSV 파일 경로와 첫 번째 행에 열 헤더가 포함되어 있는지 여부를 나타내는 플래그를 입력으로 사용합니다. CSV 데이터를 기반으로 채워진 DataTable을 반환합니다.
이 방법은 첫 번째 행이 헤더인지 여부를 나타내는 매개변수로 CSV 파일 경로와 부울 값을 허용합니다. CSV 데이터로 채워진 DataTable을 반환합니다. 개선된 코드는 using System.Globalization;
및 using System.IO;
네임스페이스 참조를 추가하고 코드의 기능을 더욱 명확하게 보여줍니다.
위 내용은 CSV 데이터를 .NET DataTable에 효율적으로 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!