2017-02-23 57 views
0

我有一個包含1000條記錄的數據表。我想執行從C#到PGSQL的批量插入操作。我知道一種將文本文件複製到pgtable的方法。將C#批量複製到PostgreSql

的例子語法如下:

using (NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;User Id=postgres;Password=postgres;Database=postgres;")) 
{ 
    onn.Open(); 
    NpgsqlCommand command = new NpgsqlCommand("copy \"schema\".\"tablename\" (\"col1\",\"col2\") from 'C:\\datafile.txt'", conn); 
    command.ExecuteNonQuery(); 
    conn.Close(); 
} 

有沒有我可以使用到數據表,而不是寫數據傳遞到一個文本文件中的任何其他功能?我正在使用Npgsql.dll

回答

0

您應該完全閱讀PostgreSQL docs for COPY

COPY可用於導入PostgreSQL服務器文件系統中存在的文件(如代碼示例所示),或者可用於從客戶端複製數據,這可能是您要查找的內容。通過用STDIN代替文件名來觸發後者。

如果您想使用Npgsql從您的客戶端程序導入數據,請閱讀Npgsql COPY docs。對於文本數據導入,您可能需要撥打NpgsqlConnection.BeginTextImport(),文檔中提供了一個示例。