Přidat do webreference Lists.asmx v SharePoint.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuální adresáře URL / _vti_bin / Lists.asmx
napsat následující metody ve vaší webové služby.
soukromé data.DataTable GetDataTableFromWSS(bool onlySchema)
{
Řetězec WssSiteUrl = http://192.168.111.21;
Řetězec WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists seznam = new WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//musíte projít List Name zde
Řetězec CommandText = “Zaměstnanecké Info”;
XMLNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.format(“WSS:Seznam[@ Title = '{0}"]”, CommandText), NameSpaceMgr);
pokud (Seznam == null)
{
throw new ArgumentException(String.format(“Seznam {0} nelze nalézt na webu {1}”, CommandText, WssSiteUrl));
}
Řetězec TechListName = List.GetAttribute(“Jméno”);
data.DataTable vysledek = new data.DataTable(“Seznam”);
XMLNode uzel = listinfo lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = new System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = new System.Collections.Hashtable();
foreach (XmlElement Pole v ListInfoNode.SelectNodes(“WSS:Pole / WSS:Pole”, NameSpaceMgr))
{
pokud (Field.HasChildNodes)
{
foreach (XmlElement Fld v Field.SelectNodes(“WSS:Pole / WSS:Pole”, NameSpaceMgr))
{
Řetězec FieldName = Fld.GetAttribute(“Jméno”);
Řetězec FieldDisplayName = Fld.GetAttribute(“DisplayName”);
pokud (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Název pole + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Pole));
fieldRefs.AppendFormat(“”, Název pole);
DisplayNames.Add(FieldDisplayName, Název pole);
}
}
jiného
{
Řetězec FieldName = Field.GetAttribute(“Jméno”);
Řetězec FieldDisplayName = Field.GetAttribute(“DisplayName”);
pokud (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Název pole + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Pole));
fieldRefs.AppendFormat(“”, Název pole);
DisplayNames.Add(FieldDisplayName, Název pole);
}
}
pokud (onlySchema) return vysledek;
XmlElement pole = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XMLNode ItemsNode = lists.GetListItems(TechListName, “”, nulový, pole, “1000000”, nulový);
// Vyhledávací pole vždy začínají číselné ID, pak ;# a pak řetězec reprezentace.
// Jsme běžně zájem pouze v názvu, tak jsme proužek ID.
System.Text.RegularExpressions.Regex CheckLookup = new System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement položku v ItemsNode.SelectNodes(“rs:Datum / z:řádek”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (result.Columns data.DataColumn sl)
{
pokud (Item.HasAttribute(“ows_” + (Řetězec)DisplayNames[col.ColumnName]))
{
řetězec val = Item.GetAttribute(“ows_” + (Řetězec)DisplayNames[col.ColumnName]);
pokud (CheckLookup.IsMatch((Řetězec)volby))
{
Řetězec valString = val jako String;
volba = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Přiřazení řetězce do pole, které očekává, čísla nebo
// datetime hodnoty budou implicitně převést
newRow[s] = Volba;
}
}
result.Rows.Add(newRow);
}
return vysledek;
}
// Následující funkce slouží k nám Jmenné prostory
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
dostat
{
pokud (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(nové NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / sharepoint / mýdlo /”);
_nsmgr.AddNamespace(“s”, “UUID:BDC6E3F0-6DA3-11D1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “UUID:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:schémata-microsoft-com:řádků”);
_nsmgr.AddNamespace(“ze dne”, “#RowsetSchema”);
}
návrat _nsmgr;
}
}
Typ soukromé TypeFromField(XmlElement pole)
{
přepínač (field.GetAttribute(“Typ”))
{
případě “DateTime”:
návrat typeof(DateTime);
případě “Celé číslo”:
návrat typeof(int);
případě “Číslo”:
návrat typeof(plovák);
výchozí:
návrat typeof(Řetězec);
}
}
WssSite objektu na tento kód, Dostávám chybu na této, “vám chybí pomocí směrnice nebo montážní odkaz?” nějakou představu
Ahoj Bala,
WssSite je Webreference pro lists.asmx
Na zdraví,
Uday
Vynikající. Díky Uday. Váš příspěvek mi ušetřil spoustu času ve svém migračního projektu 🙂
Jste vítáni Jaya