我创建了一个接收不同参数的SQL查询.当我传递一个参数时,Region-ID我得到一个错误:
System.Data.SqlClient.SqlException:不明确的列名'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");
Run Code Online (Sandbox Code Playgroud)
这是我的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");
Run Code Online (Sandbox Code Playgroud)
我不知道问题出在哪里?
编辑:
这是追加字符串函数:
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);
}
Run Code Online (Sandbox Code Playgroud)
您有两个不同的REGION_ID引用:
StringBuilder constrains = new StringBuilder();
AppendConstrain(constrains, "REGION_ID", REGION_ID);
AppendConstrain2(constrains, "r.REGION_ID", "reg.ID");
Run Code Online (Sandbox Code Playgroud)
这些引用中只有一个是限定的(r.REGION_ID).你需要完全符合他们的资格.看起来另一个应该被限定为reg.REGION_ID,例如:
StringBuilder constrains = new StringBuilder();
AppendConstrain(constrains, "reg.REGION_ID", REGION_ID);
AppendConstrain2(constrains, "r.REGION_ID", "reg.ID");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3751 次 |
| 最近记录: |