PostgreSQL में निश्चित रूप से एक बल्क कॉपी होती है (इसे वास्तव में copy
. कहा जाता है ), और इसमें .NET के लिए एक अच्छा आवरण है। यदि आप लोड कर रहे हैं, तो आप NpgsqlCopyIn
. का उपयोग करना चाहते हैं , और यदि आप डेटा निकाल रहे हैं तो आप NpgsqlCopyOut.
. का उपयोग कर सकते हैं
आपका प्रश्न विवरण पर थोड़ा अस्पष्ट है - मुझे आपके डेटाटेबल में फ़ील्ड या आपके वास्तविक डेटाबेस के बारे में कुछ भी नहीं पता है, इसलिए इसे एक संक्षिप्त उदाहरण के रूप में लें कि सी #/पोस्टग्रेएसक्यूएल का उपयोग करके तालिका में डेटा को थोक में कैसे सम्मिलित किया जाए:पी>
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();
-- संपादित करें 8/27/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();
}