2017-02-23 5 views
0

私は1000個のレコードを持つデータテーブルを持っています。 C#からPGSQLへの一括挿入操作を実行したい。私はテキストファイルをpgtableにコピーする方法を知っています。次のようにBulk 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()に電話する必要があります。そのためのサンプルがドキュメントにあります。