[英]C# copy .csv file from local machine to remote postresql server
我正在C#程序中創建.csv文件,我想通過COPY命令將它們上傳到postgres表中。 COPY希望文件位於數據庫服務器上,但我在本地使用。 有沒有辦法從本地計算機上載它們?
我認為最好的答案是:“是的,有很多方法可以將文件上傳到遠程服務器”。 您確實有很多選擇可以執行此操作。 您可能更喜歡的一種取決於與服務器通信的方式。
例如,您可以通過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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.