代码简单,记录下来为了以后能再看。有错误请指出。谢谢。

DataSet操作源码:
 1using System;
 2using System.Configuration;
 3using System.Data;
 4using System.Linq;
 5using System.Web;
 6using System.Web.Security;
 7using System.Web.UI;
 8using System.Web.UI.HtmlControls;
 9using System.Web.UI.WebControls;
10using System.Web.UI.WebControls.WebParts;
11using System.Xml.Linq;
12using System.Xml;
13/*
14 * 使用三个控件:
15 * FileUpload:fileXmlPath;
16 * Button:btnXmlPath,btnSave,btnRead;
17 * 对应事件btnXmlPath_Click,btnSave_Click,btnRead_Click。 
18 */

19
20public partial class _Default : System.Web.UI.Page 
21{
22    public static DataSet ds;
23    public static string xmlpath;
24    protected void Page_Load(object sender, EventArgs e)
25    {
26    }

27    protected void btnXmlPath_Click(object sender, EventArgs e)
28    {
29        if (fileXmlPath.HasFile)//判断是否打开了文件
30        {
31            ds = new DataSet();//实例化DataSet
32            xmlpath = fileXmlPath.PostedFile.FileName;//获取xml文件路径
33            int i = xmlpath.LastIndexOf(".");//获取文件路径字符串中最后一个“.”
34            if ((xmlpath.Substring(i + 1)) == "xml")//判断文件类型是不是xml
35            {
36                //=======================================
37                //说明:这里所说的表是指xml文件说明中的“Table”,字段是指“Column”,详见xml源文件
38                //=======================================              
39                               
40                ds.ReadXml(xmlpath);
41                //读取所有的表
42                for (int x = 0; x < ds.Tables.Count; x++)
43                {   //输出所有的表名
44                    Response.Write("表名:"+ds.Tables[x].TableName + " :<br>");                    
45                    for (int y = 0; y < ds.Tables[x].Columns.Count; y++)
46                    {   //读取表中的所有字段名
47                        string dsvalues;
48                        dsvalues = ds.Tables[x].Columns[y].Caption;
49                        //输出字段名
50                        Response.Write("字段名:"+ds.Tables[x].Columns[y].Caption + "=");
51                        //输出字段值
52                        for (int z = 0; z < ds.Tables[x].Rows.Count; z++)
53                        {                            
54                            Response.Write("字段值:"+ds.Tables[x].Rows[z][dsvalues]);
55                        }

56                        Response.Write("<br>");
57                    }

58                        Response.Write("<br>");              
59                }

60                //======================================
61            }

62            else
63            {
64                Response.Write("文件类型不正确,请选择xml文件!");
65            }

66
67        }

68        else
69        {
70            Response.Write("你还没有选择文件!");
71
72        }

73    }

74    protected void btnSave_Click(object sender, EventArgs e)
75    {
76        //更改节点的值
77        ds.Tables["格式"].Rows[0]["自定义节点"= "写入成功!";
78        ds.WriteXml(xmlpath);
79        Response.Write("写入成功!");
80    }

81    protected void btnRead_Click(object sender, EventArgs e)
82    {
83        //夺取两个相同节点名的值
84        Response.Write(ds.Tables["聊天窗口提示IP"].Rows[1]["显示"].ToString());
85        Response.Write("<br>");
86        Response.Write(ds.Tables["聊天窗口提示IP"].Rows[0]["格式"].ToString());
87    }

88}

89

xml文件源码+说明:
 1<?xml version="1.0" standalone="yes"?>
 2<全局设置><!--读取后默认为DataSetName,在DataSet中不显示为Table!-->
 3  <IP>
 4  <!--
 5  每个带属性的节点(除跟节点)都为一个Table,值为Tables["本节点名"].Rows["见注释(1)"]["属性名"]
 6  否则为一个上级节点的一个Column,值为Tables["上级节点"].Rows["本节点是第几Column"]["本节点名"]
 7  注释(1):
 8      如果有与该节点名重复的节点,先读取的在第一行,“Rows["见注释(1)"]”应为“Rows[0]”,依次类推。
 9      见“注释(1)例”,第20和29行。
10  -->
11    <格式>
12      <自定义节点>自定义节点值!</自定义节点>
13      <!--例:
14             该节点值为:Tables["格式"].Rows[0]["自定义节点"]-->
15      <主面板悬停IP-格式 格式="格式值" />
16      <!--例:
17             该节点值为:Tables["主面板悬停IP-格式"].Rows[0]["格式"]-->
18      <聊天窗口工具栏IP-格式 格式="格式值" />
19      <聊天窗口提示IP 格式="格式值" />
20      <!--注释(1)例-1:
21          该节点值为:Tables["聊天窗口提示IP"].Rows[0]["格式"]-->
22      <聊天窗口标题栏IP-格式 格式="格式值" />
23      <剪贴板-格式 格式="格式值" />
24    </格式>
25    <显示参数>
26      <主面板悬停IP 显示="是" 左边距="0" 上边距="正确" 宽度="218" 高度="26" 前景色="0" 背景色="16707022" TM背景色="16503223" 边框色="10709302" 对齐="居中" />
27      <聊天窗口工具栏IP 显示="是" 左边距="236" 上边距="25" 宽度="240" 高度="25" 前景色="0" 背景色="16758621" 对齐="居中" />
28      <聊天窗口提示IP 显示="是" 前景色="16777215" 背景色="15769725" 延时="50" />
29      <!--注释(1)例-2:      
30          如果有重复的节点名,后读取的在第二行,“Rows["见注释(1)"]”应为“Rows[0]”,依次类推
31          该节点值为:Tables["聊天窗口提示IP"].Rows[1]["显示"]-->
32      <聊天窗口标题栏IP 显示="否" />
33    </显示参数>
34    <探测参数>
35      <自动附加聊天图片 启用="是" />
36    </探测参数>
37  </IP>
38</全局设置>
 posted on 2008-05-15 17:25  向左、  阅读(359)  评论(0编辑  收藏  举报