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