protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
NewMethod();
}
}

#region 读取数据
protected void Button3_Click(object sender, EventArgs e)
{
//获取文档地址
string filename = Server.MapPath("info.xls");
DataTable fuck = showinfo(filename);
if (fuck == null)
{
Response.Write("<script>alert('读取失败')</script>");
}
else
{
Response.Write("<script>alert('读取成功')</script>");
}
}
#endregion

#region 读取数据方法
public static DataTable showinfo(string filename)
{
//转换格式
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;";
//创建连接
OleDbConnection con = new OleDbConnection(strcon);
con.Open();
//查询
string str = "select * from [info$]";
//读取数据到数据集
OleDbDataAdapter dap = new OleDbDataAdapter(str, con);
//实例化数据集
DataSet dt = new DataSet();
//添加
dap.Fill(dt);
con.Close();
return dt.Tables[0];
}
#endregion

#region 添加到XML数据里
protected void Button4_Click(object sender, EventArgs e)
{
DataTable dt = showinfo(Server.MapPath("info.xls"));
dt.WriteXml(Server.MapPath("info.xml"));
}
#endregion

#region 显示xml里的数据
private void NewMethod()
{
//将xml数据更新到dataset里
DataTable dt = new DataTable();
dt.Columns.Add("sid");
dt.Columns.Add("sname");
dt.Columns.Add("sage");

//源 --xml 加载
XDocument doc1 = XDocument.Load(Server.MapPath("info.xml"));
//查找根yuansu
XElement root1 = doc1.Root;
//查找根下的所有table节
IEnumerable<XElement> list1 = root1.Elements();
//循环table下的数据
foreach (XElement item in list1)
{
//行数据
DataRow dr = dt.NewRow();
foreach (var i in item.Elements())
{
dr[i.Name.ToString()] = i.Value; //把列的内容写入行
}
dt.Rows.Add(dr); //把行的内容写入表
}

GridView1.DataSource = dt;
GridView1.DataBind();
}
#endregion

#region 分页
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
NewMethod();
}
#endregion

#region 添加数据
protected void Button5_Click(object sender, EventArgs e)
{
//加载xml
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("info.xml"));
//找个根结构
XmlNode root = doc.SelectSingleNode("NewDataSet");
//创建子节点
XmlElement subnode = doc.CreateElement("Table");
//在当前子节点下面创建元素节点
XmlNode node1 = doc.CreateNode(XmlNodeType.Element, "sid", null);
node1.InnerText = TextBox1.Text;
subnode.AppendChild(node1);

XmlNode node2 = doc.CreateNode(XmlNodeType.Element, "sname", null);
node2.InnerText = TextBox2.Text;
subnode.AppendChild(node2);

XmlNode node3 = doc.CreateNode(XmlNodeType.Element, "sage", null);
node3.InnerText = TextBox3.Text;
subnode.AppendChild(node3);

root.AppendChild(subnode);

//保存xml文档
doc.Save(Server.MapPath("info.xml"));

NewMethod();

}
#endregion

#region 删除 修改
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName=="del")
{
string sid = e.CommandArgument.ToString();

XDocument doc1 = XDocument.Load(Server.MapPath("info.xml"));
XElement root1 = doc1.Root;

IEnumerable<XElement> list1 = root1.Elements();

foreach (XElement item in list1)
{
foreach (XElement i in item.Elements())
{
if(i.Name=="sid" && i.Value==sid)
{
item.Remove();
Response.Write("<script>alert('删除成功')</script>");
doc1.Save(Server.MapPath("info.xml"));
NewMethod();
return;
}
}
}
}

if(e.CommandName=="update")
{
Session["sid"] = e.CommandArgument;
Response.Redirect("Update.aspx");
}
}
#endregion

XML的序列化用法 vs平台开发的更多相关文章

  1. 微信公众平台开发(十) 消息回复总结——用其xml模板

    一.简介 微信公众平台提供了三种消息回复的格式,即文本回复.音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用. 二.思路分析 对于每一个PO ...

  2. 学习版pytest内核测试平台开发万字长文入门篇

    前言 2021年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款pytest内核测试平台,在公司落地.分享出来后,有同学觉得挺不错,希望能开源,本着"公司代码不要传到网上去,以免引起 ...

  3. Senparc.Weixin.MP SDK 微信公众平台开发教程(五):使用Senparc.Weixin.MP SDK

    Senparc.Weixin.MP SDK已经涵盖了微信6.x的所有公共API. 整个项目的源代码以及已经编译好的程序集可以在这个项目中获取到:https://github.com/JeffreySu ...

  4. Senparc.Weixin.MP SDK 微信公众平台开发教程(十五):消息加密

    前不久,微信的企业号使用了强制的消息加密方式,随后公众号也加入了可选的消息加密选项.目前企业号和公众号的加密方式是一致的(格式会有少许差别). 加密设置 进入公众号后台的“开发者中心”,我们可以看到U ...

  5. 微信公众平台开发(三) 订阅事件(subscribe)处理

    一.简介 新用户关注微信公众平台,将产生一个订阅事件,即subscribe事件,默认代码中没有对这一事件进行相应回复处理. 在新用户关注公众平台后,可能想知道该平台提供了哪些功能,以及怎样使用该平台, ...

  6. 【微信Java开发 --2】接入微信公众平台开发,配置自己的服务器,验证过程

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑好我们就开始:1.填写好我们的URL和Token[此处是已经通过验证的] ...

  7. ASP.NET MVC 微信公共平台开发之获取用户消息并处理

    ASP.NET MVC 微信公共平台开发 获取用户消息并处理 获取用户消息 用户发送的消息是在微信服务器发送的一个HTTP POST请求中包含的,获取用户发送的消息要从POST请求的数据流中获取 微信 ...

  8. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  9. 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token

    一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...

随机推荐

  1. Wasserstein GAN最新进展:从weight clipping到gradient penalty,更加先进的Lipschitz限制手法

    前段时间,Wasserstein GAN以其精巧的理论分析.简单至极的算法实现.出色的实验效果,在GAN研究圈内掀起了一阵热潮(对WGAN不熟悉的读者,可以参考我之前写的介绍文章:令人拍案叫绝的Was ...

  2. 用SumatraPdf实现PDF静默打印

    原文:https://yutuo.net/archives/24a22d50d6001564.html 之前做一系统,有一个打印PDF文件的需求,需求如下: 能指定打印机 能两面打印 最好能静默打印 ...

  3. .PHONY makefile中的伪目标

    我的理解: 拿clean举例,如果make完成后,自己另外定义一个名叫clean的文件,再执行make clean时,将不会执行rm命令. 为了避免出现这个问题,需要.PHONY: clean === ...

  4. jQuery的安装

    一.jQuery的安装 下载 jQuery 有两个版本的 jQuery 可供下载: Production version - 用于实际的网站中,已被精简和压缩. Development version ...

  5. group by 一条语句实现多条语句的效果

    --一个sql 使用 group by 实现 4个 sql 的效果 select ProjectNumber,ClientName,jx,sf,sum(count) as TotalCount fro ...

  6. java笔记--代码实现汉诺塔移动过程和移动次数

    汉诺塔 有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方. --如果朋友 ...

  7. Python 爬虫练习项目——异步加载爬取

    项目代码 from bs4 import BeautifulSoup import requests url_prefix = 'https://knewone.com/discover?page=' ...

  8. 文件复制(shutil)

    import shutil #拷贝整个目录树 shutil.copytree('d:\\aaa','e:\\aaa') #目标文件夹(e:\aaa)必须不存在 shutil.rmtree('e:\\a ...

  9. switch与java

    switch结构可以更好的解决等值判断问题switch 选择结构的语法:switch (表达式){case 常量 1://代码块1:break;case 常量 2://代码块2:break;..... ...

  10. Java学习---面向对象的远程方法调用[RMI]

    基础知识 分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果. 常见的分 ...