簡體   English   中英

C#將.csv文件從本地計算機復制到遠程Postresql服務器

[英]C# copy .csv file from local machine to remote postresql server

我正在C#程序中創建.csv文件,我想通過COPY命令將它們上傳到postgres表中。 COPY希望文件位於數據庫服務器上,但我在本地使用。 有沒有辦法從本地計算機上載它們?

如果可以訪問服務器的硬盤,則可以使用File.Copy方法復制它:

File.Copy(sourceFile, destFile);

來源: MSDN上的File.Copy

我認為最好的答案是:“是的,有很多方法可以將文件上傳到遠程服務器”。 您確實有很多選擇可以執行此操作。 您可能更喜歡的一種取決於與服務器通信的方式。

例如,您可以通過FTP上傳文件或通過HTTPWeb表單提交文件。 或者,您可以將遠程文件系統作為外部驅動器附加到本地計算機,然后將其復制。

此外,還有許多實用程序,例如SqlBulkCopy 它允許您不上傳文件,而是從DataTable遠程插入多行。

這個帖子

好吧,我發現了一種非常聰明的方法:)我在查詢中使用STDIN,之后我就在流式傳輸文件的內容...

        NpgsqlCommand dbcmd = dbcon.CreateCommand();
        string sql =
            "COPY table_name FROM STDIN;";
        dbcmd.CommandText = sql;
        serializer = new NpgsqlCopySerializer(dbcon);
        copyIn = new NpgsqlCopyIn(dbcmd, dbcon, serializer.ToStream);
        copyIn.Start();
        foreach(...){
            serializer.Add... 
            serializer.EndRow();
            serializer.Flush();
        }
        copyIn.End();
        serializer.Close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM