>백엔드 개발 >C++ >CSV 데이터를 .NET DataTable에 효율적으로 로드하려면 어떻게 해야 합니까?

CSV 데이터를 .NET DataTable에 효율적으로 로드하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-27 19:21:14528검색

How Can I Efficiently Load CSV Data into a .NET DataTable?

CSV 데이터를 .NET DataTable로 가져오기: 실용 가이드

CSV 데이터를 효율적으로 처리하는 것은 많은 .NET 애플리케이션에 매우 중요합니다. 이 문서에서는 테이블 형식 데이터 관리를 위한 강력한 ADO.NET 구조인 .NET DataTable로 CSV 파일을 원활하게 가져오는 방법을 보여줍니다.

OleDb 공급자 활용

표준 ADO.NET에는 직접 CSV 가져오기 기능이 없지만 OleDb 공급자는 강력한 솔루션을 제공합니다. 그러나 일반적인 과제는 숫자 데이터를 올바르게 해석하는 것입니다. schema.ini 파일(아래 설명)을 사용하여 이 문제를 해결하겠습니다.

재사용 가능한 C# 메서드

다음 C# 함수는 CSV 파일을 읽고 DataTable을 채워 헤더 행을 적절하게 처리합니다.

<code class="language-csharp">public static DataTable LoadCsvToDataTable(string filePath, bool hasHeaderRow)
{
    string directory = Path.GetDirectoryName(filePath);
    string filename = Path.GetFileName(filePath);
    string header = hasHeaderRow ? "Yes" : "No";
    string sqlQuery = $"SELECT * FROM [{filename}]";

    using (OleDbConnection connection = new OleDbConnection(
        $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={directory};Extended Properties=\"Text;HDR={header}\""))
    using (OleDbCommand command = new OleDbCommand(sqlQuery, connection))
    using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
    {
        DataTable dataTable = new DataTable();
        dataTable.Locale = CultureInfo.CurrentCulture; // Ensures correct data type handling
        adapter.Fill(dataTable);
        return dataTable;
    }
}</code>

이 방법은 현재 문화권을 사용하여 정확한 데이터 유형 해석을 보장하고 숫자 값과 관련된 일반적인 문제를 방지합니다. 이 접근 방식을 사용하면 수동으로 유형을 변환할 필요가 없습니다.

위 내용은 CSV 데이터를 .NET DataTable에 효율적으로 로드하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.