Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memuatkan Data CSV dengan Cekap ke dalam Jadual Data .NET?

Bagaimana untuk Memuatkan Data CSV dengan Cekap ke dalam Jadual Data .NET?

Barbara Streisand
Barbara Streisandasal
2025-01-27 19:31:08982semak imbas

Muat data CSV dengan cekap ke dalam .NET DataTable

Memuatkan data CSV ke dalam Jadual Data ialah tugas biasa dalam pemprosesan dan analisis data. Artikel ini meneroka cara untuk mencapai ini menggunakan keupayaan terbina dalam .NET, memfokuskan pada mencipta skema daripada fail CSV.

How to Efficiently Load CSV Data into a .NET DataTable?

Gunakan fungsi standard ADO.NET

Rangka kerja ADO.NET standard tidak menyokong pembacaan fail CSV secara langsung. Walau bagaimanapun, kami boleh memanfaatkan penyedia OleDb untuk mengimport data CSV dengan mencipta fail definisi skema.

Buat skema menggunakan fail .INI

Untuk mencipta fail skema (schema.ini), ikut langkah berikut:

  1. Masukkan kod berikut ke dalam fail yang dipanggil schema.ini:
<code>[FileName.csv]
Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0</code>
  1. Simpan fail dalam direktori yang sama dengan fail CSV.

Pelaksanaan kod

Kod berikut menunjukkan cara memuatkan data CSV ke dalam Jadual Data menggunakan pembekal OleDb dengan fail definisi skema:

<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>

Kaedah ini mengambil sebagai input laluan fail CSV dan bendera yang menunjukkan sama ada baris pertama mengandungi pengepala lajur. Ia mengembalikan Jadual Data yang diisi berdasarkan data CSV.

Kaedah ini menerima laluan fail CSV dan nilai Boolean sebagai parameter, menunjukkan sama ada baris pertama ialah pengepala. Ia mengembalikan Jadual Data yang diisi dengan data CSV. Kod yang dipertingkatkan menambah rujukan ruang nama using System.Globalization; dan using System.IO; dan menunjukkan kefungsian kod dengan lebih jelas.

Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Data CSV dengan Cekap ke dalam Jadual Data .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn