Pridať do webreference Lists.asmx v SharePoint.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuálne adresáre URL / _vti_bin / Lists.asmx
napísať nasledovné metódy vo vašej webovej služby.
súkromné data.DataTable GetDataTableFromWSS(bool onlySchema)
{
Reťazec WssSiteUrl = http://192.168.111.21;
Reťazec WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists zoznam = new WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//musíte prejsť List Name tu
Reťazec CommandText = “Zamestnanecké Info”;
XMLNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.format(“WSS:Zoznam[@ Title = '{0}’]”, CommandText), NameSpaceMgr);
ak (Zoznam == null)
{
throw new ArgumentException(String.format(“Zoznam {0} nemožno nájsť na webe {1}”, CommandText, WssSiteUrl));
}
Reťazec TechListName = List.GetAttribute(“Meno”);
data.DataTable vysledok = new data.DataTable(“Zoznam”);
XMLNode uzol = 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))
{
ak (Field.HasChildNodes)
{
foreach (XmlElement Fld v Field.SelectNodes(“WSS:Pole / WSS:Pole”, NameSpaceMgr))
{
Reťazec fieldname = Fld.GetAttribute(“Meno”);
Reťazec FieldDisplayName = Fld.GetAttribute(“DisplayName”);
ak (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Fieldname + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Pole));
fieldRefs.AppendFormat(“”, Fieldname);
DisplayNames.Add(FieldDisplayName, Fieldname);
}
}
iného
{
Reťazec fieldname = Field.GetAttribute(“Meno”);
Reťazec FieldDisplayName = Field.GetAttribute(“DisplayName”);
ak (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Fieldname + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Pole));
fieldRefs.AppendFormat(“”, Fieldname);
DisplayNames.Add(FieldDisplayName, Fieldname);
}
}
ak (onlySchema) return vysledok;
XmlElement polia = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XMLNode ItemsNode = lists.GetListItems(TechListName, “”, nulový, poľa, “1000000”, nulový);
// Vyhľadávacie pole vždy začínajú číselné ID, potom ;# a potom reťazec reprezentácie.
// Sme bežne záujem iba v názve, tak sme prúžok ID.
System.Text.RegularExpressions.Regex CheckLookup = new System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement položku v ItemsNode.SelectNodes(“rs:Dátum / z:riadok”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (result.Columns data.DataColumn sl)
{
ak (Item.HasAttribute(“ows_” + (Reťazec)DisplayNames[col.ColumnName]))
{
reťazec val = Item.GetAttribute(“ows_” + (Reťazec)DisplayNames[col.ColumnName]);
ak (CheckLookup.IsMatch((Reťazec)voľby))
{
Reťazec valString = val ako String;
voľba = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Priradenie reťazca do poľa, ktoré očakáva, čísla alebo
// datetime hodnoty budú implicitne previesť
newRow[s] = Voľba;
}
}
result.Rows.Add(newRow);
}
return vysledok;
}
// Nasledujúce funkcie slúžia k nám Menné priestory
private static XmlNamespaceManager _nsmgr;
private static XmlNamespaceManager NameSpaceMgr
{
dostať
{
ak (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(nové NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / SharePoint / mydlo /”);
_nsmgr.AddNamespace(“s”, “uuid:BDC6E3F0-6DA3-11D1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “uuid:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:schémy-microsoft-com:riadkov”);
_nsmgr.AddNamespace(“zo dňa”, “#RowsetSchema”);
}
návrat _nsmgr;
}
}
Typ súkromné TypeFromField(XmlElement poľa)
{
prepínač (field.GetAttribute(“Typ”))
{
prípade “Datetime”:
návrat typeof(Datetime);
prípade “Celé číslo”:
návrat typeof(int);
prípade “Číslo”:
návrat typeof(plavák);
predvolené:
návrat typeof(Reťazec);
}
}
WssSite objektu na tento kód, Dostávam chybu na tejto, “vám chýba pomocou smernice alebo montážnej odkaz?” nejakú predstavu
Ahoj Bala,
WssSite je Webreference pre lists.asmx
Na zdravie,
Uday
Vynikajúce. Vďaka Uday. Your post saved me lot of time in my migration project 🙂
Ste vítaní Jaya