SharePoint saytında Lists.asmx üçün Webreference əlavə et.
http://localhost / _vti_bin / Lists.asmx
(SharePoint virtual Directory URL / _vti_bin / Lists.asmx
Sizin Belediyesi aşağıdakı üsulları yazmaq.
Şəxsi data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists siyahıları = Yeni WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//Burada siyahısı Ad keçmək lazımdır
string CommandText = “İşçilərin Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement siyahısı = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:Siyahısı[@ Title = '{0}"]”, CommandText), NameSpaceMgr);
əgər (Siyahı == null)
{
Yeni ArgumentException atmaq(String.Format(“siyahı {0} saytda tapılmadı {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“Ad”);
data.DataTable nəticə = new data.DataTable(“siyahısı”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = new System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = new System.Collections.Hashtable();
foreach (ListInfoNode.SelectNodes da XmlElement Field(“WSS:Fields / WSS:Field”, NameSpaceMgr))
{
əgər (Field.HasChildNodes)
{
foreach (Field.SelectNodes da FLD XmlElement(“WSS:Fields / WSS:Field”, NameSpaceMgr))
{
string FieldName = Fld.GetAttribute(“Ad”);
string FieldDisplayName = Fld.GetAttribute(“DisplayName”);
əgər (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
başqa
{
string FieldName = Field.GetAttribute(“Ad”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
əgər (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
əgər (onlySchema) qaytarılması nəticə;
XmlElement sahələri = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, null, sahələrdə, “1000000”, null);
// Axtarış sahələrdə həmişə sayısal ID ilə başlamaq, sonra ;# və sonra simli nümayəndəliyi.
// Biz adətən ad maraqlıdır, belə ki, biz ID soyunmaq.
System.Text.RegularExpressions.Regex CheckLookup = new System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (ItemsNode.SelectNodes da XmlElement Item(“rs:data / z:sıra”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (result.Columns da data.DataColumn col)
{
əgər (Item.HasAttribute(“ows_” + (sim)DisplayNames[col.ColumnName]))
{
string val = Item.GetAttribute(“ows_” + (sim)DisplayNames[col.ColumnName]);
əgər (CheckLookup.IsMatch((sim)h))
{
valString string = val kimi String;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Nömrələri və ya gözləyir ki, bir sahədə bir string Atama
// datetime dəyərlər üstü onları konvertasiya edəcək
newRow[ilə] = H;
}
}
result.Rows.Add(newRow);
}
qaytarılması nəticə;
}
// Aşağıdakı Function Adlar fəzası alın istifadə olunur
Şəxsi statik XmlNamespaceManager _nsmgr;
Şəxsi statik XmlNamespaceManager NameSpaceMgr
{
almaq
{
əgər (_nsmgr == null)
{
_nsmgr = new XmlNamespaceManager(Yeni NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“s”, “uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “uuid:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “urna:şemaları-microsoft-com:rowset”);
_nsmgr.AddNamespace(“etibarən”, “#RowsetSchema”);
}
_nsmgr qayıtmaq;
}
}
Şəxsi növü TypeFromField(XmlElement sahə)
{
keçid (field.GetAttribute(“Növ”))
{
hal “Datetime”:
typeof qayıtmaq(Datetime);
hal “Tam”:
typeof qayıtmaq(int);
hal “Nömrə”:
typeof qayıtmaq(sal);
default:
typeof qayıtmaq(sim);
}
}
WssSite object on this code, I am getting error on this, “you are missing a using directive or an assembly reference?” any idea
Hi Bala,
WssSite is an Webreference for the lists.asmx
Cheers,
Uday
Excellent. Thanks Uday. Your post saved me lot of time in my migration project 🙂
You are welcome Jaya