在IN运算符中没有获得带有单引号的所选记录的完整结果

时间:2018-01-24 12:09:44

标签: c# sql

我有以下提到的代码:

List<string> queryEventIDList=new List<string>();//added new list<string>
foreach (ListItem lstAssign in lstEvent.Items)
{
    if (lstAssign.Selected == true)
    {
        queryEventIDList.Add(lstAssign.Value);
        logfield = logfield + "," + lstEvent.SelectedItem.Text;
    }
}
string queryEventIDs = string.Join(",", queryEventIDList.ToArray());

来自queryEventIDs,我得到了所选的值。我有一个下面提到的查询行,其中condition.suppose我选择A和B,它只给我一个A的结果。

" (('" + queryEventIDs + "'='') OR (inq1.event_id in('" + queryEventIDs + "'))) AND  " +  //queryeventids(A,B)//skips result of B

所以我稍微修改了line.i从中删除了单引号('')。

" (('" + queryEventIDs + "'='') OR (inq1.event_id in(" + queryEventIDs + "))) AND  " +  //Queryeventids(A,B)//gives both result

所以这给了我A和B的两个选定结果。这很奇怪。inq1.event_id in('" + queryEventIDs + "'有和没有单引号的区别是什么? 我是C#的初学者。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

添加Replace解决了我的问题

" (('" + queryEventIDs + "'='') OR (inq1.event_id in('" + queryEventIDs.Replace(",", "','") + "'))) AND  " +