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简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...
随机推荐
- Word 关闭 Passive Voice
Sheryl prefers passive voice for some of her writing (such as business documents and correspondenc ...
- MySQL 备份恢复(导入导出)单个 innodb表
MySQL 备份恢复单个innodb表呢,对于这种恢复我们我们很多朋友都不怎么了解了,下面一起来看一篇关于MySQL 备份恢复单个innodb表的教程 在实际环境中,时不时需要备份恢复单个或多个表(注 ...
- Android 图片缩略图显示
//通过openRawResource获取一个inputStream对象 InputStream inputStream = getResources().openRawResource(R.draw ...
- 基于Vue的WebApp项目开发(六)
实现商品购买列表页面 步骤一:新建goodslist.vue文件 <template> <div id="tml"> <!--利用mui中的图文表格组 ...
- mac ASP.NET5
不写1行代码,在Mac上体验ASP.NET 5的最简单方法 昨天微软发布了ASP.NET 5 beta2(详见ASP.NET 5 Beta2 发布),对ASP.NET 5的好奇心又被激发了. 今天 ...
- codeforces 420D Cup Trick
codeforces 420D Cup Trick 题意 题解 官方做法需要用到线段树+平衡树(? 如果数据小的话似乎可以用莫队).然后代码好长好长.我补了一个只要用到树状数组的做法. 代码 #inc ...
- 内网渗透中的mimikatz
0x00 前言 上篇测试了中间人攻击利用框架bettercap,这次挑选一款更具代表性的工具--mimikatz 0x01 简介 mimikatz,很多人称之为密码抓取神器,但在内网渗透中,远不止这么 ...
- 020.2.5 Calender对象
内容:日历对象获取时间,设置时间,日期偏移 通过工厂化获得对象.getInstance();get() 获取时间信息 Calendar c = Calendar.getInstance(); //获取 ...
- yarn logs -applicationId [applicationID]
yarn logs -applicationId application_1435648583743_0001 报错: tmp/logs/.../application_1435648583743_0 ...
- angular cli
1. 安装cnpm: npm install -g cnpm --registry=https://registry.npm.taobao.org 2. 安装angular/cli: cnpm ins ...