zoukankan      html  css  js  c++  java
  • 愚老先生的 WSS3.0 Lists服务的使用方法,帮了大忙

    Text Field全为空格时:<Eq><FieldRef Name='TextFieldName' /><Value Type='Text'></Value></Eq>
    Text Field不含任何字符时:<IsNull><FieldRef Name='TextFieldName' ></FieldRef></IsNull>,上条不成立
    Text Field不区分英文大小写,这一点应该主要取决于数据库的语言设置。

    User Field格式为: UserID;#UserName,如:16;#Leo Ge
    如果某个字段为空,则有可能不返回该字段,对XmlNode的Attribute必须先作有效性检验,如:
    if (i.Attributes.GetNamedItem("ows_Machine")!=null) taskItem.Machine = i.Attributes["ows_Machine"].Value;

    GetListItems的一般性做法:
    XmlDocument xmlDoc = new XmlDocument();
    XmlElement query 
    = xmlDoc.CreateElement("Query");
    XmlElement viewFields 
    = xmlDoc.CreateElement("ViewFields");
    XmlElement queryOptions 
    = xmlDoc.CreateElement("QueryOptions");
    query.InnerXml 
    = "<Where>"
                        
    + "<Or>"
                            
    + "<Eq><FieldRef Name='Machine' /><Value Type='Text'>" + machineName + "</Value></Eq>"
                            
    + "<Or>"
                                
    + "<IsNull><FieldRef Name='Machine'></FieldRef></IsNull>"
                                
    + "<Eq><FieldRef Name='Machine' /><Value Type='Text'></Value></Eq>"
                            
    + "</Or>"
                        
    + "</Or>"
                        
    + "</Where>";
    viewFields.InnerXml 
    = "";
    queryOptions.InnerXml 
    = "";
    XmlNode node 
    = wss.GetListItems("{E7E1EEC8-F627-48A9-8228-F4BC1CA45F0C}""{FC3C7DFF-7399-4944-A155-56AF8BCB0F11}", query, viewFields, "100", queryOptions, null);

    NameTable nt 
    = new NameTable();
    XmlNamespaceManager xnm 
    = new XmlNamespaceManager(nt);
    xnm.AddNamespace(
    "rs""urn:schemas-microsoft-com:rowset");
    xnm.AddNamespace(
    "z""#RowsetSchema");

    xmlDoc 
    = new XmlDocument();
    xmlDoc.ImportNode(node,
    true);

    foreach (XmlNode i in node.SelectNodes("rs:data/z:row",xnm))
    {
       
    int id =int.Parse(i.Attributes["ows_ID"].Value);
       
    string title = i.Attributes["ows_Title"].Value;
       
    bool reloadData = i.Attributes["ows_Reload_x0020_Data"].Value == "1" ? true : false;
       DateTime created 
    = DateTime.Parse(i.Attributes["ows_Created"].Value);
       
    string createdBy = i.Attributes["ows_Author"].Value; // 格式为userID;#userName
       DateTime modified = DateTime.Parse(i.Attributes["ows_Modified"].Value);
       
    string modifiedBy = i.Attributes["ows_Editor"].Value; // 格式为userID;#userName
       EnumStatus status = (EnumStatus) Enum.Parse(typeof(EnumStatus), i.Attributes["ows_Status"].Value);
      
    if (i.Attributes.GetNamedItem("ows_Machine")!=null//可能为空的字段要先作检查
            string machine = i.Attributes["ows_Machine"].Value;
         }

    }

  • 相关阅读:
    使用Chrome断点调试javascript程序
    vue-iview-admin项目过大导致打包失败
    vue+iview后台管理系统util.ajax跨域问题的解决方法
    webpack vue热加载编译速度慢
    (转)网站架构变迁
    (转)工作不到一年,做出了100k系统,老板给我升职加薪
    (转)CPU说:这个世界慢!死!了!
    (转)一个故事搞懂“ERP“
    (转)手动搭建自己的nuget服务器及使用
    doc系统maven打包脚本
  • 原文地址:https://www.cnblogs.com/vincedotnet/p/965325.html
Copyright © 2011-2022 走看看