Add the webreference to the Lists.asmx in sharepoint site.
http://localhost/_vti_bin/Lists.asmx
(SharePoint virtual Directory URL/_vti_bin/Lists.asmx
write the following methods in your webservice.
private data.DataTable GetDataTableFromWSS(bool onlySchema)
{
string WssSiteUrl = http://192.168.111.21;
string WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists lists = new WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin/Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = true;
//you have to pass the List Name here
string CommandText = “Employee Info”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement List = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“wss:सूची[@Title='{0}’]”, CommandText), NameSpaceMgr);
if (List == null)
{
throw new ArgumentException(String.Format(“The list {0} could not be found in the site {1}”, CommandText, WssSiteUrl));
}
string TechListName = List.GetAttribute(“नाम”);
data.DataTable result = new data.DataTable(“लिस्ट”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = new System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = new System.Collections.Hashtable();
foreach (XmlElement Field in ListInfoNode.SelectNodes(“wss:Fields/wss:Field”, NameSpaceMgr))
{
if (Field.HasChildNodes)
{
foreach (XmlElement Fld in Field.SelectNodes(“wss:Fields/wss:Field”, NameSpaceMgr))
{
string FieldName = Fld.GetAttribute(“नाम”);
string FieldDisplayName = Fld.GetAttribute(“DisplayName”);
if (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
else
{
string FieldName = Field.GetAttribute(“नाम”);
string FieldDisplayName = Field.GetAttribute(“DisplayName”);
if (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Field));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
if (onlySchema) return result;
XmlElement fields = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, null, फ़ील्ड्स, “1000000”, null);
// लुकअप फ़ील्ड हमेशा सांख्यिक आईडी के साथ शुरू, फिर ;# और फिर स्ट्रिंग प्रतिनिधित्व.
// हम आम तौर पर नाम में ही रुचि रखते हैं, इसलिए हम आईडी पट्टी.
System.Text.RegularExpressions.Regex CheckLookup = नए System.Text.RegularExpressions.Regex(“^ डी ;#”);
foreach (ItemsNode.SelectNodes में XmlElement आइटम(“रुपये:डाटा / Z:पंक्ति”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (result.Columns में data.DataColumn कर्नल)
{
if (Item.HasAttribute(“ows_” + (तार)DisplayNames[col.ColumnName]))
{
स्ट्रिंग वैल = Item.GetAttribute(“ows_” + (तार)DisplayNames[col.ColumnName]);
if (CheckLookup.IsMatch((तार)घंटे))
{
स्ट्रिंग valString = वैल स्ट्रिंग के रूप में;
वैल = valString.Substring(valString.IndexOf(“#”) + 1);
}
// नंबर या उम्मीद है कि एक क्षेत्र के लिए एक स्ट्रिंग बताए
// समयदिनाँक मूल्यों संकेत भी उन्हें परिवर्तित कर देंगे
newRow[संग] = एच;
}
}
result.Rows.Add(newRow);
}
return result;
}
// निम्नलिखित समारोह नामस्थान प्राप्त करने के लिए प्रयोग किया जाता है
निजी स्थिर XmlNamespaceManager _nsmgr;
निजी स्थिर XmlNamespaceManager NameSpaceMgr
{
मिलना
{
if (_nsmgr == बातिल)
{
_nsmgr = new XmlNamespaceManager(new NameTable());
_nsmgr.AddNamespace(“wss”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“साथ”, “uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “uuid:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“रुपये”, “urn:schemas-microsoft-com:rowset”);
_nsmgr.AddNamespace(“z”, “#RowsetSchema”);
}
return _nsmgr;
}
}
private Type TypeFromField(XmlElement field)
{
switch (field.GetAttribute(“Type”))
{
case “DateTime”:
return typeof(DateTime);
case “Integer”:
return typeof(int);
case “Number”:
return typeof(float);
default:
return typeof(तार);
}
}
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