使用 NPGSQL 将 csv 文件的内容写入 PostgreSQL 失败

Writing the content of a csv file to PostgreSQL with NPGSQL fails

我正在将 csv 文件的内容写入 PostgreSQL table 借助版本 3.2.5 中的 NPGSQL。

我的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.

当我直接在SQLShell中运行命令时一切正常,所以问题似乎是由NPGSQL产生的。

这是我在 SQL Shell:

中使用的命令
\COPY tbl_test(id,value) FROM 'C:/temp/test.csv' DELIMITER ',' CSV HEADER;

有其他人遇到过此消息吗?

正如 github issue 中的回答,您使用 API 不正确。

如果您的 CSV 文件位于客户端(Npgsql 应用程序位于 运行),那么您应该使用 COPY tbl_test(value) FROM STDIN,而不是 FROM c:\temp\test.csv。后者在 csv 文件位于 PostgreSQL 服务器上时使用。 See the documentation.

如果您只想导入服务器上的文件,只需像常规一样执行 COPY 命令 SQL - 创建一个命令并使用 ExecuteNonQuery 执行它。不要使用 BeginTextImport API.