Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C将.csv文件从本地计算机复制到远程postresql服务器_C#_Sql_Postgresql - Fatal编程技术网

C# C将.csv文件从本地计算机复制到远程postresql服务器

C# C将.csv文件从本地计算机复制到远程postresql服务器,c#,sql,postgresql,C#,Sql,Postgresql,我正在我的C程序中创建.csv文件,我想通过COPY命令将它们上传到postgres表中。COPY希望文件位于数据库服务器上,但我将它们放在本地。有没有办法从本地机器上传它们 如果您可以访问服务器的硬盘驱动器,只需使用文件复制即可。复制方法: File.Copy(sourceFile, destFile); 来源:我认为最好的答案是:是的,有很多方法可以将文件上传到远程服务器。 你有很多选择来做这件事。您可能更喜欢的方式取决于您与服务器的通信方式 例如,您可以通过FTP上传文件,或通过HTTP

我正在我的C程序中创建.csv文件,我想通过COPY命令将它们上传到postgres表中。COPY希望文件位于数据库服务器上,但我将它们放在本地。有没有办法从本地机器上传它们

如果您可以访问服务器的硬盘驱动器,只需使用文件复制即可。复制方法:

File.Copy(sourceFile, destFile);

来源:

我认为最好的答案是:是的,有很多方法可以将文件上传到远程服务器。 你有很多选择来做这件事。您可能更喜欢的方式取决于您与服务器的通信方式

例如,您可以通过FTP上传文件,或通过HTTP以web表单提交文件。 或者,您可以将远程文件系统作为外部驱动器连接到本地计算机上,然后复制它

此外,还有许多实用程序,如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();

看起来您的问题更像是postgresql而不是C问题。psql\copy允许您从客户端上载到服务器。我得到serializer.ToStream未设置为对象的实例