XML的序列化用法 vs平台开发
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平台开发的更多相关文章
- 微信公众平台开发(十) 消息回复总结——用其xml模板
一.简介 微信公众平台提供了三种消息回复的格式,即文本回复.音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用. 二.思路分析 对于每一个PO ...
- 学习版pytest内核测试平台开发万字长文入门篇
前言 2021年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款pytest内核测试平台,在公司落地.分享出来后,有同学觉得挺不错,希望能开源,本着"公司代码不要传到网上去,以免引起 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(五):使用Senparc.Weixin.MP SDK
Senparc.Weixin.MP SDK已经涵盖了微信6.x的所有公共API. 整个项目的源代码以及已经编译好的程序集可以在这个项目中获取到:https://github.com/JeffreySu ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十五):消息加密
前不久,微信的企业号使用了强制的消息加密方式,随后公众号也加入了可选的消息加密选项.目前企业号和公众号的加密方式是一致的(格式会有少许差别). 加密设置 进入公众号后台的“开发者中心”,我们可以看到U ...
- 微信公众平台开发(三) 订阅事件(subscribe)处理
一.简介 新用户关注微信公众平台,将产生一个订阅事件,即subscribe事件,默认代码中没有对这一事件进行相应回复处理. 在新用户关注公众平台后,可能想知道该平台提供了哪些功能,以及怎样使用该平台, ...
- 【微信Java开发 --2】接入微信公众平台开发,配置自己的服务器,验证过程
接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑好我们就开始:1.填写好我们的URL和Token[此处是已经通过验证的] ...
- ASP.NET MVC 微信公共平台开发之获取用户消息并处理
ASP.NET MVC 微信公共平台开发 获取用户消息并处理 获取用户消息 用户发送的消息是在微信服务器发送的一个HTTP POST请求中包含的,获取用户发送的消息要从POST请求的数据流中获取 微信 ...
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...
随机推荐
- android 原生 MediaPlayer 和 MediaCodec 的区别和联系(三)
目录: (4)Android 官方网站 对 MediaCodec的介绍 注:编解码器特定数据(Code-specific Data,简写为csd) 部分结合网上资料加入了补充和个人理解.请悉知 ...
- 微信小程序一个页面多个按钮分享怎么处理
首先呢,第一步先看api文档: 组件:button https://developers.weixin.qq.com/miniprogram/dev/component/button.html 框架- ...
- 深入理解HashMap和concurrentHashMap
原文链接:https://segmentfault.com/a/1190000015726870 前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据. 本篇 ...
- Django 简单教程(入门级)
一.Django简介 1. web框架介绍 具体介绍Django之前,必须先介绍WEB框架等概念. web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要 ...
- java获取文件大小的方法
目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的ava ...
- 第一个JavaScript代码
既然我们的CSS就必须要要放再专门的style标签内 那么javascript也需要放在子级的标签内,那就是script标签内 在页面中,我们可以在body标签中放入<script type= ...
- 网络编程进阶---->>> hamc模块 socketserver模块验证合法性 两者进行通信连接
我们在工作中经常遇到,你公司内的某一台电脑要去访问你的服务器或者一个服务端电脑,那么你是让每一台都进行连接吗? 那不可能的 你肯定要进行限定的 验证客户端链接的合法性: hamc模块 hamc也是 ...
- 《C++ Primer Plus》读书笔记之三—循环与关系表达式
第五章 循环与关系表达式 1.表达式是值或者值与操作符的结合,每个C++表达式都有值.表达式到语句的转换只要加一个分号就可以完成.但是,反过来,从语句中删除分号,并不一定能将它转化成表达式. 2.前缀 ...
- WORD列表缩进的文本起始点
Figure 1 Figure 2 Figure 3 编号位置以刻度尺为起点0.74厘米(2个字符间距),文本缩进以刻度尺为起点2.96厘米(8个字符间距) 以上两者相减得到的值正好=特殊格式悬挂缩进 ...
- rsync 服务器配置过程
rsync的原理和相关算法不赘述,资料很多 1.准备两台机器并确保都已经安装rsync a机器:192.168.1.150 ,用作客户端测试 b机器:192.168.1.151用作server端 先介 ...