繁体   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