我在3.2.5版本的NPGSQL帮助下将csv文件的内容写入PostgreSQL表。
我的csv的内容如下
id, value
1, 89
2, 286
3, 80
4, 107
我使用以下命令编写
Using writer = conn.BeginTextImport("COPY tbl_test (id,value) FROM 'C:/temp/test.csv' DELIMITER ',' CSV HEADER")
当我运行我的代码时,值会写入我的数据库,但该命令会抛出以下错误消息:
Received unexpected backend message CompletedResponse. Please file a bug.
当我直接在SQL Shell中运行命令时,一切正常,所以问题似乎是由NPGSQL产生的。
这是我在SQL Shell中使用的命令:
\COPY tbl_test(id,value) FROM 'C:/temp/test.csv' DELIMITER ',' CSV HEADER;
还有其他人有过这条消息吗?
答案 0 :(得分:0)
正如github issue中所述,您未正确使用API。
如果您的客户端(运行Npgsql应用程序的位置)有CSV文件,那么您应该使用COPY tbl_test(value) FROM STDIN
,而不是FROM c:\temp\test.csv
。当csv文件位于PostgreSQL服务器上时使用后者。 See the documentation
如果您只想导入服务器上存在的文件,只需将COPY命令作为常规SQL执行 - 创建命令并使用ExecuteNonQuery执行它。不要使用BeginTextImport API。