PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Групова C# таблица с данни към таблица postgresql

PostgreSQL определено има групово копие (то всъщност се нарича copy ), и има хубава обвивка за .NET. Ако зареждате, искате да използвате NpgsqlCopyIn , а ако извличате данни, можете да използвате NpgsqlCopyOut.

Въпросът ви е малко неясен по отношение на подробностите -- не знам полетата във вашата таблица с данни или нищо за действителната ви база данни, така че приемете това като кратък пример за това как групово да вмъкнете данни в таблица с помощта на 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();

-- Редактиране на 27.08.2019 г. --

Конструкцията за Npgsql е напълно променена. По-долу е даден шаблон за същия пример по-горе, използващ двоично импортиране (наличен е и текст):

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. Apache Felix няма достъп до Postgres JDBC

  2. Изберете множество идентификатори от последователност на PostgreSQL

  3. Създайте/вмъкнете Json в Postgres със заявки и psycopg2

  4. plpgsql:извикване на функция с 2 OUT параметъра

  5. грешка при кодиране на знаци rodbc с PostgreSQL