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学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法
新建了一个Android Studio工程,在MainActivity的主界面中添加了两个按钮,点击其中一个按钮用来启动 NormalActivity,点击另一按钮用来启动DialogActivity ...
- Java学习笔记(4)----Public,Protected,Package,Private修饰符可见性
Java修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的任何类均可以访问:protected的类.类属变量及方法,包内的 ...
- SparseArray代替HashMap
相信大家都明白,手机软件的开发不同于PC软件的开发,因为手机性能相对有限,内存也有限,所谓“寸土寸金”,可能稍有不慎,就会导致性能的明显降低.Android为了方便开发者,特意在android.uti ...
- 【Android Studio使用教程1】Android Studio导入项目的几种方法
本篇教程中使用到的Android Studio版本为1.0, Eclipse ADT版本23.0.4.请尝试更新到该版本. Android Studio默认使用 Gradle 构建项目, Eclips ...
- web测试流程的总结及关注点
项目的测试流程大只包含的几个阶段:立项.需求评审.用例评审.测试执行.测试报告文档 一.立项后测试需要拿到的文档 1.需求说明书 2.原型图(及UI图) 3.接口文档 4.数据库字典(表的数量.缓存机 ...
- 关于v$rowcache
关于v$rowcache column parameter format a21column pct_succ_gets format 999.9column updates format 999,9 ...
- cocos ide使用binding-generator导出来的c++类
time:2015/03/19 cocos版本:3.2 描述:用了ide运行一个实例[1]的时候需要增加c++类,正确导出来之后,直接使用vs2012启动是没有问题的,但是使用ide启动却提示找不到模 ...
- Handlebars.js中集合(list)通过中括号的方式取值
有这么一个需求,在一个table中,tr是通过each取值,取出的值要与table标题相对应,如何实现?例如: <table> <thead> <tr> {{#ea ...
- redis-day1
1 Redis 概述 REmote DIctionary Server(Redis)是一个基于key-value键值对的持久化数据库存储系统.redis和大名鼎鼎的Memcached缓存服务软件很像, ...
- December 15th 2016 Week 51st Thursday
At the touch of love everyone becomes a poet. 每一个沐浴在爱河中的人都是诗人. You call your love as your sweetheart ...