根据 NPGSQL 找不到字段,但根据 PGadmin,它存在
本文关键字:PGadmin 存在 NPGSQL 找不到 字段 根据 | 更新日期: 2023-09-27 18:34:00
我在 C# 中有以下代码行作为我的查询:
cmd.CommandText = "SELECT *
FROM product
LEFT JOIN category ON product.category_id = category.id
WHERE product.id = @productId";
product
表有一个名为 name
的列,我需要它。
这是我在应用程序中用来检索它的行。
product.ProductName = reader.GetString(reader.GetOrdinal("'"product'".'"name'""));
我得到的错误是
System.IndexOutOfRangeException: 找不到字段
在那条线上。
reader.GetOrdinal("name");
首先,结果集没有一个名为 "product"."name"
的字段,而是一个名为 "name"
的字段。考虑一下,如果你要尝试在PostgreSQL中从该结果集中选择,情况是一样的:
SELECT "product"."name" FROM
(SELECT *
FROM product
LEFT JOIN category ON product.category_id = category.id
WHERE product.id = @productId) subquery
不起作用,但是:
SELECT "name" FROM
(SELECT *
FROM product
LEFT JOIN category ON product.category_id = category.id
WHERE product.id = @productId) subquery
确实如此。
其次,不要在字段名称上使用 PostgreSQL 转义。