正文

asp.net笔记(13)2008-04-01 20:52:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ghlat520/33804.html

分享到:

 第十三章:Web应用程序包
                              打包需要解决两点
                              1)打包之后的网站中应该没有源文件(*.cs)
                              2)打包过程中应该把DotnetFrameworker打包进去,这样在安装过程
                                会自动识别目标计算机上是否有fw,如果没有则首先安装fw
                              打包的步骤:
                               1)安装WebDeployment。这是微软公司为了弥补vs2005自动的web打包而
                                 发布一个插件,它可以把一个网站进行编译,其结果是没有源文件也可以运行
                               2)创建一个web应用程序
                               3)对准web应用程序单右-->add WebDeployment Project,确定
                               4)选择WebDeployment Project单右-->生成,就可以生成一个没有*.cs的网站
                               5)添加一个Web安装项目
                               6)选中Web安装项目按F4,弹出属性窗口,在其中输入安装项目的信息,包含:安装的标题,软件的作者等等
                               7)选中Web安装项目按单右-->属性-->系统必备--->选择"从与我应用程序相同的位置下载系统必备组件
                               8)选中"web应用程序文件夹"--->单右-->添加-->项目输出-->选择以前通过WebDeployment Project生成的项目-->确定
                               9)选中Web安装项目按单右-->生成--->在生成的文件夹的Debug文件夹中会看到
                                 dotnetfx,setup.exe.WeijinSetUp.msi三个安装文件
                               10)把这三个安装文件刻成光盘,安装到目标文件就可

 

          
                                第十四章 xml文件的操作
               1)在asp.net中要操作xml文件有三种方式
               2)xmldocument类,xmlTextReader,xmlTextWriter类,DataSet类

                               xmldocument类 
            1:xmldocument实际上利用xml文档对像模型(dom)对xml进行操作
            2:工作原理是把xml文档中的全部内容读到内存中,形成一个xml文档树
            3:通过dom能够对xml文档进行增加,删除,修改等操作
            4:缺点是如果文档非常大的话,则会导致内存资源不足的问题
            有如下的xml文件:
                 <?xml version="1.0" encoding="utf-8" ?>
  <studs>
    <stud>
       <id>S1</id>
       <name OtherName="二狗">张三</name>
        <age>20</age>
                 </stud>
                 <stud>
                       <id>S2</id>
                       <name>李四</name>
                       <age>34</age>
                </stud>
                <stud>
                       <id>S3</id>
                       <name>小张</name>
                       <age>20</age>
                </stud>
            </studs>

                        document
                           |
                           |
                  --------------------
                  |       | 
                  xml              studs
                                     |
                                     |
                             ------------------------------------
                             |                 |                |
                            stud              stud            stud
                             |         
                             |               
                        -----------            
                        |    |    | 
                       id   name age
                        |    |    |
                        S1  张三  20


              读文件:
                   XmlDataDocument doc = new XmlDataDocument();
               string path = Environment.CurrentDirectory;
                   doc.Load(path + "\\XMLFile1.xml");
                   XmlElement root =doc.DocumentElement;//得到文档的根
                   foreach (XmlNode StudNode in root.ChildNodes)
                     {
                         string id = StudNode.ChildNodes[0].FirstChild.InnerText;
                         string name = StudNode.ChildNodes[1].FirstChild.InnerText;
                         string age = StudNode.ChildNodes[2].FirstChild.InnerText;
                         ListViewItem lv = new ListViewItem(id);
                         this.listView1.Items.Add(lv);
                         lv.SubItems.Add(name);
                         lv.SubItems.Add(age);
                   }
            增加文件:
                 XmlDocument doc = new XmlDocument();
              string path =Environment.CurrentDirectory + "\\XMLFile1.xml";
              doc.Load(path);
             XmlElement root = doc.DocumentElement;
             XmlNode StudNode=doc.CreateNode(XmlNodeType.Element, "stud", "");
              XmlNode IdNode = doc.CreateNode(XmlNodeType.Element, "id", "");
                 IdNode.InnerText = "S99";
              XmlNode NameNode = doc.CreateNode(XmlNodeType.Element, "name", "");
              NameNode.InnerText = "小二";
             XmlNode AgeNode = doc.CreateNode(XmlNodeType.Element, "age", "");
              AgeNode.InnerText ="67";
              StudNode.AppendChild(IdNode);
             StudNode.AppendChild(NameNode);
             StudNode.AppendChild(AgeNode);
             root.AppendChild(StudNode);
             doc.Save(path);
            修改文件:
                          XmlDataDocument doc = new XmlDataDocument();
               string path = Environment.CurrentDirectory;
              doc.Load(path + "\\XMLFile1.xml");
              XmlElement root =doc.DocumentElement;
               root.ChildNodes[0].ChildNodes[0].FirstChild.InnerText = "S7";
              doc.Save(path + "\\XMLFile1.xml");    
            删除文件:
                    XmlDataDocument doc = new XmlDataDocument();
                 string path = Environment.CurrentDirectory;
                    doc.Load(path + "\\XMLFile1.xml");
                    XmlElement root =doc.DocumentElement;
                    root.RemoveChild(root.ChildNodes[0]);
                    doc.Save(path + "\\XMLFile1.xml");
            读取属性:
                  XmlDataDocument doc = new XmlDataDocument();
             string path = Environment.CurrentDirectory;
             doc.Load(path + "\\XMLFile1.xml");
             XmlElement root =doc.DocumentElement;
             string st=root.ChildNodes[0].ChildNodes[1].Attributes["OtherName"].InnerText;
            MessageBox.Show(st);
  


                xmlTextReader类
          1) 这个类提供一个只读的访问xml文件的方式,相当于利用dom而言,非常快速,但是它只能够
             读,不能修改,要修改可以利用xmlTextWriter类
          2) 不论是xmlTextReader类还是xmlTextWriter类,它们对xml操作必须是从头到尾进行操作,也
             就是说如果你想操作第100个节点的内容,它们都会从第一个节点一步一步移到100个节点之后才
             能进行操作,这个与xmlDocumnet的处理机制完全不一样,所以xmlTextWriter非常不适合于修改
          
             读文件:
   string path=Environment.CurrentDirectory+"\\XMLFile1.xml";
             XmlTextReader xtr = new XmlTextReader(path);
              while (xtr.Read())
               {
   if (xtr.HasAttributes)
                     {
                            MessageBox.Show(xtr.GetAttribute(0));
                     } 
                       if (xtr.NodeType == XmlNodeType.Element && xtr.Name == "id") //读id
                    {
                             if (xtr.Read())
                             {
                                MessageBox.Show(xtr.Value);
                              }
                         }
                   }
                   xtr.Close();
                 }
              写文件:
             XmlTextWriter xmlwrite = new XmlTextWriter("..\\..\\XMLFile.xml",Encoding.Default);
             xmlwrite.Formatting = Formatting.Indented; //设置换行标志
             xmlwrite.WriteStartDocument();//写入开始位置
            xmlwrite.WriteStartElement("peoples");//写入没有值的节点
            xmlwrite.WriteStartElement("people");//写入没有值的节点
            xmlwrite.WriteElementString("姓名", "张三");//写入有值的节点
             xmlwrite.WriteEndElement();//为没有值的节点,写入结束标记
             xmlwrite.WriteEndElement();//为没有值的节点,写入结束标记
             xmlwrite.Flush();//把缓冲区的内容,真正的写入到文件中去
            xmlwrite.Close();//关闭,以释放资源
                           
                           
                                         

                         DataSet类
           读文件:
                   string path = Environment.CurrentDirectory + "\\XMLFile1.xml";
                DataSet ds = new DataSet();
                   ds.ReadXml(path);
                   DataTable dt = ds.Tables[0];
                   string st = dt.Rows[i][j].ToString();
           增加:
              string path = Environment.CurrentDirectory + "\\XMLFile1.xml";
              DataSet ds = new DataSet();
              ds.ReadXml(path);
              DataTable dt = ds.Tables[0];
              DataRow dr = dt.NewRow();
              dr[0] = "S8";
              dr[1] = "爸爸";
              dr[2] = "45";
              dt.Rows.Add(dr);
              ds.WriteXml(path);
          修改:
            string path = Environment.CurrentDirectory + "\\XMLFile1.xml";
            DataSet ds = new DataSet();
            ds.ReadXml(path);
            DataTable dt = ds.Tables[0];
            DataRow dr = dt.Rows[0];
            dr[0] = "S8";
            dr[1] = "爸爸";
            dr[2] = "45";
            ds.WriteXml(path);

            三种方法总结:
              1)如果操作的xml文件的结构与数据表相似,则优先考虑使用dataset
              2)如果操作的xml文件的结构与数据表不相似:
                     A:如果要读:则使用xmlTextReader对像
                     B:如果要修改:则使用xmlDocument对像

 

 

 

 

 

 


                  高级编程
          实现客户端无刷新加传
                        
          
       

阅读(2689) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册