sharepoint中如何根据多个用户ID拼接SPQuery语句
2012-03-22 15:06
344 查看
这个是sharepoint中利用用户的id来拼接query语句进行查询,出入参数为一个string的数组,
可以用下面方法对数组中为空和重复的数据排除;
/// 排除数组中重复项和空项
/// </summary>
/// <param name="values"></param>
/// <returns></returns>
private static string[] getString(string[] values)
{
List<string> list = new List<string>();
for (int i = 0; i < values.Length; i++)
{
if (list.IndexOf(values[i].ToLower()) == -1 && values[i] != "")
{
list.Add(values[i]);
}
}
return list.ToArray();
}
/// <summary>
/// 根据收藏的id拼接query查询语句
/// </summary>
/// <param name="sharedocument"></param>
/// <returns></returns>
private static string getQuery(string[] sharedocument)
{
//当为1个的时候
string query = "";
if (sharedocument.Length == 1)
{
for (int i = 0; i < sharedocument.Length; i++)
{
query += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[i] + "</Value></Eq>";
}
}
//两个的时候
else if (sharedocument.Length == 2)
{
string newmessage = "";
for (int i = 0; i < sharedocument.Length; i++)
{
newmessage += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[i] + "</Value></Eq>"; }
query = "<Or>" + newmessage + "</Or>";
}
//大于两个的时候
else if (sharedocument.Length > 2)
{
//前两个id的链接
string query2 = "";
string newmessage2 = "";
for (int i = 0; i < 2; i++)
{
newmessage2 += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[i] + "</Value></Eq>"; }
query2 = "<Or>" + newmessage2 + "</Or>";
string query3 = "";
string newmessage3 = "";
for (int j = 2; j < sharedocument.Length; j++)
{
query3 += "<Or>";
newmessage3 += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[j] + "</Value></Eq></Or>";
}
query = query3 + query2 + newmessage3;
}
return query;
}
可以用下面方法对数组中为空和重复的数据排除;
/// 排除数组中重复项和空项
/// </summary>
/// <param name="values"></param>
/// <returns></returns>
private static string[] getString(string[] values)
{
List<string> list = new List<string>();
for (int i = 0; i < values.Length; i++)
{
if (list.IndexOf(values[i].ToLower()) == -1 && values[i] != "")
{
list.Add(values[i]);
}
}
return list.ToArray();
}
/// <summary>
/// 根据收藏的id拼接query查询语句
/// </summary>
/// <param name="sharedocument"></param>
/// <returns></returns>
private static string getQuery(string[] sharedocument)
{
//当为1个的时候
string query = "";
if (sharedocument.Length == 1)
{
for (int i = 0; i < sharedocument.Length; i++)
{
query += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[i] + "</Value></Eq>";
}
}
//两个的时候
else if (sharedocument.Length == 2)
{
string newmessage = "";
for (int i = 0; i < sharedocument.Length; i++)
{
newmessage += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[i] + "</Value></Eq>"; }
query = "<Or>" + newmessage + "</Or>";
}
//大于两个的时候
else if (sharedocument.Length > 2)
{
//前两个id的链接
string query2 = "";
string newmessage2 = "";
for (int i = 0; i < 2; i++)
{
newmessage2 += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[i] + "</Value></Eq>"; }
query2 = "<Or>" + newmessage2 + "</Or>";
string query3 = "";
string newmessage3 = "";
for (int j = 2; j < sharedocument.Length; j++)
{
query3 += "<Or>";
newmessage3 += "<Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='User'>" + sharedocument[j] + "</Value></Eq></Or>";
}
query = query3 + query2 + newmessage3;
}
return query;
}
相关文章推荐
- SharePoint 如何根据用户权限在NewForm页面允许用户编辑某字段或者只读某字段
- mysql根据用户id分组读取两列的总和倒叙排列后取前十条sql语句
- Ibatis根据id获取拼接好的sql语句案例
- exec 执行拼接的语句时,如何获取语句中的返回值
- SharePoint 如何找到List的Template ID
- SharePoint 2010中如何彻底删除用户
- SharePoint中如何获得当前用户的loginName
- vue-router如何根据不同的用户给不同的权限
- 编写一个计算某个月份的天数程序,请用if-else条件语句实现。要求根据用户输入的月份,判断出月份所包含的天数。
- WinForm程序如何等待多个线程执行完后提示用户?
- sd--如何控制定价条件根据用户不同而操作不同(有的可以输入有的不可以)
- SharePoint【学习笔记】-- SharePoint 2010 利用JavaScript根据用户使用的语言应用不同的样式
- SharePoint 2010 利用JavaScript根据用户使用的语言应用不同的样式
- 【FAQ】如何根据commit id找到对应节点所属的分支和标签?
- 如何根据http请求信息区分访问用户的国家、语言信息
- 根据用户权限和角色拼接菜单
- 如何新建语句级触发器、用户事件触发器
- SharePoint如何模拟用户
- Microsoft Dynamics CRM 4.0,IFD验证下,自定义aspx页面,如何获取当前的用户ID ?
- .Net GridView 应用:Gridview有一个CheckBox列,在用了分页的情况下,如何取出用户选择的所有记录id