SharePoint2010客户端模型获取中文字段的编码方式

列表记录如下:

image

在SharePoint2010客户端模型如果要得到中文字段的

错误写法

 

 //打开站点
 ClientContext clientContext = new ClientContext("http://moss:8001");
 //获取列表
 List list = clientContext.Web.Lists.GetByTitle("统计表");
 //查看内容
 CamlQuery camlQuery = new CamlQuery();
 camlQuery.ViewXml = "<View/>";
 //得到记录
 ListItemCollection listItems = list.GetItems(camlQuery);
 //列表
 clientContext.Load(list);
 //记录
 clientContext.Load(listItems);
 //执行
 clientContext.ExecuteQuery();
 //得到记录
 foreach (ListItem listItem in listItems)
 {
      //      
      Console.WriteLine("Id: {0} Title: {1} 加班天数:{2}", listItem.Id, listItem["Title"], listItem["加班(天)"]);
      Console.WriteLine();
}
这样写的结果,运行会出现错误,无法得到要的结果。
 
正确写法:
//打开站点
ClientContext clientContext = new ClientContext("http://moss:8001");
//获取列表
List list = clientContext.Web.Lists.GetByTitle("统计表");
//查看内容
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = "<View/>";
//得到记录
ListItemCollection listItems = list.GetItems(camlQuery);
//得到某个字段
Field flds = list.Fields.GetByTitle("加班(天)");
//列表
clientContext.Load(list);
//记录
clientContext.Load(listItems);
//字段
clientContext.Load(flds);
//执行
clientContext.ExecuteQuery();
//得到记录
foreach (ListItem listItem in listItems)
{
     //*****************汉字的字段需要通过编码后方可得到值flds.InternalName
                
     Console.WriteLine("Id: {0} Title: {1} 加班天数:{2}", listItem.Id, listItem["Title"], listItem[flds.InternalName]);
     Console.WriteLine();
}

效果图如下:

image

posted @ 2012-05-30 14:36  love007  阅读(483)  评论(0编辑  收藏  举报