Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将参数动态添加到';在';查询中的子句?_Sql_Ms Access - Fatal编程技术网

Sql 将参数动态添加到';在';查询中的子句?

Sql 将参数动态添加到';在';查询中的子句?,sql,ms-access,Sql,Ms Access,我正试图用C# 静态查询是- Select FieldID , CDGroups.CDGroupID , Priority from Fields , CDGroups where Fields.CDGroupID = CDGroups.CDGroupID and Fields.FieldID in ('f1','f2','f3') order by Priority 我需要更换f1,f2。。包含所有这些字段的fieldIdList(List fieldIdList)中的FieldID 我

我正试图用
C#

静态查询是-

Select FieldID , CDGroups.CDGroupID , Priority
from Fields , CDGroups
where Fields.CDGroupID = CDGroups.CDGroupID
  and Fields.FieldID in ('f1','f2','f3')
order by Priority
我需要更换f1,f2。。包含所有这些字段的
fieldIdList(List fieldIdList)
中的FieldID

我该怎么做呢

 var listId= string.Join(",", fieldIdList.Select(m => string.Format("'{0}'", m)));;
然后


正确的方法是使用SQL参数。
为此,您需要在列表中循环,并为每个列表项创建一个参数-在SQL字符串和查询的SQL参数列表中

看一看类似问题的答案:

我使用了以下代码:

 StringBuilder sb = new StringBuilder();

                foreach (string fieldId in fieldIdList)
                {
                    sb.Append("'" + fieldId + "',");
                }

                string fieldList = sb.ToString().TrimEnd(',');

                string queryString =
                    "Select FieldID , CDGroups.CDGroupID , Priority from Fields , CDGroups where Fields.CDGroupID = CDGroups.CDGroupID and Fields.FieldID in (" + fieldList + ") order by Priority";
请尝试此查询-

SELECT CDGroupID FROM fields
  WHERE FieldID IN ('f1', 'f2', 'f3')
  GROUP BY CDGroupID
  HAVING(COUNT(DISTINCT FieldID)) >= 3

它将显示至少具有“f1”、“f2”和“f3”的CDGroupID列表。如果您想显示只有“f1”、“f2”和“f3”的文件,请将WHERE条件更改为“HAVING(COUNT(DISTINCT FieldID))>=3”。

您使用的是什么语言,实体框架还是其他语言,您使用的是LINQ?我正在将c应用程序与access数据库连接,不,我没有使用LINQ。您仍然需要显示一些代码,否则,你在这里最好的希望就是“好吧,那就去做”你想得到什么?具有“f1”、“f2”和“f3”的CDGroupID列表?@Devart具有相应字段的CDGroupID列表
SELECT CDGroupID FROM fields
  WHERE FieldID IN ('f1', 'f2', 'f3')
  GROUP BY CDGroupID
  HAVING(COUNT(DISTINCT FieldID)) >= 3