Tilsæt WebReference til Lists.asmx i SharePoint-webstedet.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtuelle bibliotek URL / _vti_bin / Lists.asmx
skriver følgende metoder i din webservice.
private data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists lister = nye WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//du nødt til at passere listenavnet her
string CommandText = “Medarbejder Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Liste[@ Title = '{0}']”, CommandText), NameSpaceMgr);
hvis (Liste == null)
{
kaste nyt ArgumentException(String.Format(“Listen {0} kunne ikke findes i stedet {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Navn”);
data.DataTable resultat = ny data.DataTable(“Listen”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = ny System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = ny System.Collections.Hashtable();
foreach (XmlElement Field i ListInfoNode.SelectNodes(“WSS:Fields / WSS:Field”, NameSpaceMgr))
{
hvis (Field.HasChildNodes)
{
foreach (XmlElement Fld i Field.SelectNodes(“WSS:Fields / WSS:Field”, NameSpaceMgr))
{
string = FIELDNAME Fld.GetAttribute(“Navn”);
string = FieldDisplayName Fld.GetAttribute(“DisplayName”);
hvis (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Feltnavn + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, Feltnavn);
DisplayNames.Add(FieldDisplayName, Feltnavn);
}
}
andet
{
string FeltNavn = Field.GetAttribute(“Navn”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
hvis (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + Feltnavn + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, Feltnavn);
DisplayNames.Add(FieldDisplayName, Feltnavn);
}
}
hvis (onlySchema) tilbagevenden resultat;
XmlElement felter = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, null, felter, “1000000”, null);
// Opslagsfelter altid starte med det numeriske ID, derefter ;# og derefter streng repræsentation.
// Vi er normalt kun interesseret i navnet, så vi fratage ID.
System.Text.RegularExpressions.Regex CheckLookup = ny System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement Item i ItemsNode.SelectNodes(“rs:data / z:rækken”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn col i result.Columns)
{
hvis (Item.HasAttribute(“ows_” + (streng)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (streng)DisplayNames[col.ColumnName]);
hvis (CheckLookup.IsMatch((streng)timer))
{
string valString = val som String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Tildeling af en streng til et felt, der forventer, at tal eller
// datetime værdier implicit konvertere dem
newRow[med] = H;
}
}
result.Rows.Add(newRow);
}
tilbagevenden resultat;
}
// Følgende funktion bruges til at få Navnerum
private statisk XmlNamespaceManager _nsmgr;
private statisk XmlNamespaceManager NameSpaceMgr
{
få
{
hvis (_nsmgr == null)
{
_nsmgr = ny XmlNamespaceManager(nye NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“med”, “UUID:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“DT”, “UUID:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urne:skemaer-microsoft-com:sæt rækker”);
_nsmgr.AddNamespace(“fra”, “#RowsetSchema”);
}
tilbage _nsmgr;
}
}
privat Type TypeFromField(XmlElement felt)
{
kontakt (field.GetAttribute(“Type”))
{
tilfælde “DateTime”:
tilbage typeof(DateTime);
tilfælde “Integer”:
tilbage typeof(int);
tilfælde “Nummer”:
tilbage typeof(float);
standard:
tilbage typeof(streng);
}
}
WssSite indsigelse på denne kode, Jeg får fejl på dette, “du mangler en hjælp direktiv eller en samling henvisning?” nogen idé
Der Bala,
WssSite er en WebReference for lists.asmx
Skål,
Uday
Fremragende. Tak Uday. Your post saved me lot of time in my migration project 🙂
Du er velkommen Jaya