通過 WebService的Retreiving在SharePoint列表內容 2003

添加webreference在SharePoint網站 Lists.asmx.

銈://本地主機 / _vti_bin / Lists.asmx
(SharePoint虛擬目錄 URL / _vti_bin / Lists.asmx

寫在你的web服務下面的方法.

私人data.DataTable GetDataTableFromWSS(BOOL onlySchema)
{
字符串WssSiteUrl = HTTP://192.168.111.21;
字符串WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists列表=新WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;

lists.PreAuthenticate = TRUE;
//你必須通過列表的名稱
字符串的CommandText = “員工信息”;
XmlNode的= ListCollectionNode lists.GetListCollection();
名單的XmlElement = (的XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:名單[@ TITLE ='{0}“]”, 的CommandText), NameSpaceMgr);
如果 (列表== NULL)
{
拋出新的ArgumentException(String.Format(“該列表 {0} 不能在現場發現 {1}”, 的CommandText, WssSiteUrl));
}
字符串TechListName = List.GetAttribute(“名稱”);
data.DataTable結果 =新data.DataTable(“列表”);
XmlNode的ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs =新System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames =新System.Collections.Hashtable();
的foreach (在ListInfoNode.SelectNodes的XmlElement場(“WSS:字段/ WSS:現場”, NameSpaceMgr))
{
如果 (Field.HasChildNodes)
{
的foreach (在Field.SelectNodes的XmlElement FLD(“WSS:字段/ WSS:現場”, NameSpaceMgr))
{
字符串的FieldName = Fld.GetAttribute(“名稱”);
字符串FieldDisplayName = Fld.GetAttribute(“DisplayName的”);
如果 (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + 字段名 + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(現場));
fieldRefs.AppendFormat(“”, 字段名);
DisplayNames.Add(FieldDisplayName, 字段名);
}
}
其他
{
字符串的FieldName = Field.GetAttribute(“名稱”);
字符串FieldDisplayName = Field.GetAttribute(“DisplayName的”);
如果 (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + 字段名 + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(現場));
fieldRefs.AppendFormat(“”, 字段名);
DisplayNames.Add(FieldDisplayName, 字段名);
}
}
如果 (onlySchema) 返回結果;
XmlElement的領域 = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode的ItemsNode = lists.GetListItems(TechListName, “”, 為零, 字段, “1000000”, 為零);
// 查閱字段總是與數字 ID開始, 然後 ;# 然後字符串表示.
// 我們通常只在名稱感興趣, 因此,我們剝離的ID.
System.Text.RegularExpressions.Regex ​​CheckLookup =新System.Text.RegularExpressions.Regex(“^ D ;#”);

的foreach (在ItemsNode.SelectNodes的XmlElement項目(“RS:日期/ S:行”, NameSpaceMgr))
{
data.DataRow的NewRow = result.NewRow();
的foreach (在result.Columns山坳data.DataColumn)
{
如果 (Item.HasAttribute(“ows_” + (串)DisplayNames[col.ColumnName]))
{
字符串值= Item.GetAttribute(“ows_” + (串)DisplayNames[col.ColumnName]);
如果 (CheckLookup.IsMatch((串)VAL))
{
字符串作為 String = valString選擇;
VAL = valString.Substring(valString.IndexOf(“#”) + 1);
}
// 分配一個領域,預計數字或字符串
// datetime值將隱式轉換
的NewRow[與] =瓦爾;
}
}
result.Rows.Add(的NewRow);
}
返回結果;
}

// 下面的函數是用來獲取命名空間

私人靜態的XmlNamespaceManager _nsmgr;
私人靜態的XmlNamespaceManager NameSpaceMgr
{
獲得
{
如果 (_nsmgr == NULL)
{
_nsmgr =新的XmlNamespaceManager(新名稱表());
_nsmgr.AddNamespace(“WSS”, “銈://schemas.microsoft.com / SharePoint的/ SOAP /”);
_nsmgr.AddNamespace(“與”, “UUID:BDC6E3F0 - 6DA3 - 11D1 - A2A3 - 00AA00C14882”);
_nsmgr.AddNamespace(“DT”, “UUID:C2F41010 - 65B3 - 11D1 - A29F-00AA00C14882”);
_nsmgr.AddNamespace(“RS”, “甕:架構 - 微軟 COM:行集”);
_nsmgr.AddNamespace(“對”, “#RowsetSchema”);

}
返回_nsmgr;
}
}
私人類型 TypeFromField(XmlElement的領域)
{
切換 (field.GetAttribute(“類型”))
{
案例 “的DateTime”:
返回typeof運算(的DateTime);
案例 “整數”:
返回typeof運算(詮釋);
案例 “數”:
返回typeof運算(浮動);
默認:
返回typeof運算(串);
}
}

4 在SharePoint列表內容通過WebService的Retreiving的意見 2003

給一個答复

你可以使用 這些 HTML標籤

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>