PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Dữ liệu C # hàng loạt vào bảng postgresql

PostgreSQL chắc chắn có một bản sao hàng loạt (nó thực sự được gọi là copy ), và nó có một trình bao bọc đẹp cho .NET. Nếu bạn đang tải, bạn muốn sử dụng NpgsqlCopyIn và nếu bạn đang giải nén dữ liệu, bạn có thể sử dụng NpgsqlCopyOut.

Câu hỏi của bạn hơi mơ hồ về chi tiết - Tôi không biết các trường trong cơ sở dữ liệu của bạn hoặc bất cứ điều gì về cơ sở dữ liệu thực tế của bạn, vì vậy hãy lấy đây làm ví dụ ngắn gọn về cách chèn hàng loạt dữ liệu vào bảng bằng C # / PostgreSQL:

    NpgsqlCopyIn copy = new NpgsqlCopyIn("copy table1 from STDIN WITH NULL AS '' CSV;",
        conn);
    copy.Start();

    NpgsqlCopySerializer cs = new NpgsqlCopySerializer(conn);
    cs.Delimiter = ",";

    foreach (var record in RecordList)
    {
        cs.AddString(record.UserId);
        cs.AddInt32(record.Age);
        cs.AddDateTime(record.HireDate);
        cs.EndRow();
    }

    cs.Close();
    copy.End();

- Chỉnh sửa 27/8/2019 -

Cấu trúc cho Npgsql đã hoàn toàn thay đổi. Dưới đây là bảng soạn sẵn cho ví dụ tương tự ở trên, sử dụng nhập nhị phân (văn bản cũng có sẵn):

using (var writer = conn.BeginBinaryImport(
    "copy user_data.part_list from STDIN (FORMAT BINARY)"))
{
    foreach (var record in RecordList)
    {
        writer.StartRow();
        writer.Write(record.UserId);
        writer.Write(record.Age, NpgsqlTypes.NpgsqlDbType.Integer);
        writer.Write(record.HireDate, NpgsqlTypes.NpgsqlDbType.Date);
    }

    writer.Complete();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giảm tham số postgresql.conf tại một thời điểm

  2. Truy vấn sử dụng hai giá trị cột để tạo phạm vi

  3. Tên miền SQL LỖI:cột không tồn tại, đặt mặc định

  4. Cài đặt PL / Ruby trên PostgreSQL 9.3

  5. Sử dụng bảng thay vì kiểu trường mảng trong PostgreSql khi mảng không vượt quá 50 phần tử có tốt hơn không?