gpt4 book ai didi

c# - SQL 服务器错误 : ambiguous column name

转载 作者:行者123 更新时间:2023-11-30 19:29:45 25 4
gpt4 key购买 nike

我创建了一个接收不同参数的 SQL 查询。当我将参数仅传递给 Region-ID 时出现错误:

System.Data.SqlClient.SqlException: Ambiguous column name 'REGION_ID'

当我将数据传递给其他参数时,它的工作没有问题。

我为 sql 查询构建了一个字符串:

StringBuilder constrains = new StringBuilder();
AppendConstrain(constrains, "RAUMKLASSE_ID", RAUMKLASSE_ID);
AppendConstrain(constrains, "STADT_ID", STADT_ID);
AppendConstrain(constrains, "GEBAEUDE_ID", GEBAEUDE_ID);
AppendConstrain(constrains, "REGION_ID", REGION_ID);
AppendConstrain(constrains, "RAUMATTRIBUTE_ID", RAUMATTRIBUTE_ID);
AppendConstrain2(constrains, "r.REGION_ID", "reg.ID");
AppendConstrain2(constrains, "r.STADT_ID", "st.ID");
AppendConstrain2(constrains, "r.ETAGE_ID", "et.ID");

这是我的 SQL 查询:

StringBuilder query =
new StringBuilder("SELECT DISTINCT r.BEZEICHNUNG AS BEZEICHNUNG, r.ID AS ID,reg.NAME AS REGNAME, st.NAME AS STNAME, et.BEZEICHNUNG as ETBEZEICHNUNG FROM RAZUORDNUNG rz right join RAUMATTRIBUTE ra ON rz.RAUMATTRIBUTE_ID = ra.ID right join RAUM r ON rz.RAUM_ID = r.ID, REGION reg, STADT st, ETAGE et");

不知道问题出在哪里?

编辑:

这是附加字符串函数:

private static void AppendConstrain(StringBuilder query, string name, string value)
{
if (String.IsNullOrEmpty(value))
return;

if (query.Length > 0)
query.Append(" AND ");

query.AppendFormat("{0} IN ({1})", name, value);
}

private static void AppendConstrain2(StringBuilder query, string name, string name2)
{
if (String.IsNullOrEmpty(name2))
return;

if (query.Length > 0)
query.Append(" AND ");

query.AppendFormat("{0} = ({1})", name, name2);
}

最佳答案

您对 REGION_ID 有两个不同的引用:

StringBuilder constrains = new StringBuilder();
AppendConstrain(constrains, "REGION_ID", REGION_ID);
AppendConstrain2(constrains, "r.REGION_ID", "reg.ID");

这些引用中只有一个是合格的 (r.REGION_ID)。你需要完全符合他们两个。看起来另一个应该被限定为 reg.REGION_ID,例如:

StringBuilder constrains = new StringBuilder();
AppendConstrain(constrains, "reg.REGION_ID", REGION_ID);
AppendConstrain2(constrains, "r.REGION_ID", "reg.ID");

关于c# - SQL 服务器错误 : ambiguous column name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11119204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com