首页 > wpf+xml实现的一个随机生成早晚餐的小demo

wpf+xml实现的一个随机生成早晚餐的小demo

   话说每到吃完的时间就发愁,真的不知道该吃什么,然后就想到做一个生成吃什么的小软件,既然这个软件如此的简单,就打算用wpf开发吧,也不用数据库了,直接保存在xml中就可以了

 程序整体结构如下图

 首先我写了一个xml的帮助类,主要是写了个常用的增加方法

主程序界面也很简单,一共就两个页面

对应的两处代码也粘上

 private void Button_Click_1(object sender, RoutedEventArgs e){string path = Common.GetServerPath() + "\food.xml";DataSet ds = new DataSet();ds.ReadXml(path);DataTable table = ds.Tables[0];DataRow[] tableZao = table.Select("type='早餐'");DataRow[] tableZhong = table.Select("type='午餐'");DataRow[] tableWan = table.Select("type='晚餐'");Random num = new Random();int temp = num.Next(table.Rows.Count);int temp1 = num.Next(tableZao.Length);int temp2 = num.Next(tableZhong.Length);int temp3 = num.Next(tableWan.Length);lblZao.Content = tableZao[temp1][1];lblZhong.Content = tableZhong[temp2][1];lblWan.Content = tableWan[temp3][1];}
View Code

 

XmlHelper xh = new XmlHelper();string path = Common.GetServerPath() + "\food.xml";Hashtable ht = new Hashtable();string name = txtName.Text;string type = cbType.Text;XmlDocument xmldoc = new XmlDocument();xmldoc.Load(path);XmlNode node = xmldoc.SelectSingleNode("foods");int id = 0;if (node==null){id = 1;}else{XmlNode node2= node.LastChild;//foreach (XmlNode item in node2.ChildNodes)//{//    MessageBox.Show(item.Name[0]+":"+item.InnerText);//}id = Convert.ToInt32(node2.FirstChild.InnerText) + 1;}ht.Add("id", id);ht.Add("name", name);ht.Add("type", type);ht.Add("last", "1900-01-01");xh.InsertNode(path, "food", false, "foods", null, ht);MessageBox.Show("保存成功");}
View Code

功能很简单,代码也很简单,拿出来分享一下,大家勿喷啊,不过vs2012打包发布倒是挺麻烦的,我下载了一个InstallShield2013LimitedEdition,还是发布不成功,下一篇写一个vs2012打包发布,和大家讨论一下

转载于:https://www.cnblogs.com/bjjjunjie/p/3522156.html

更多相关:

  •   测试用prototxt   name: "CIFAR10_quick"layer {name: "data" type: "MemoryData" top: "data" top: "label" memory_data_param {batch_size: 1     #样本个数 channels: 3 height: 32 w...

  • 菜鸟一枚,正在学习C++ Gui Qt4,整理很零碎,欢迎批评指正   1.窗口标题: QWidget *window = new QWidget; window->setWindowTitle("Enter Your Age"); **************************************** 关于标题...

  • 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 总体思路是: 比较两个链表头节点,较小的插入新链表指针之后,同时较小链表指针向后移动一位 实现如下: ListNode* mergeTwo...

  • 1.直接调用微软socket对象处理 static void Main(string[] args){try{IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });//在3721端口新建一个TcpListener对象TcpListener listener = new...

  •   现在很多地方都会用到zookeeper, 用到它的地方就是为了实现分布式。用到的场景就是服务注册,比如一个集群服务器,需要知道哪些服务器在线,哪些服务器不在线。   ZK有一个功能,就是创建临时节点,当机器启动应用的时候就会连接到一个ZK节点,然后创建一个临时节点,那么通过获取监听该路径,并且获取该路径下的节点数量就知道有哪些服务...

  • 前台到后台java时data日期类型的转化 在实体类中用@DataTimeFormat,这样设置即使传过来是空的字符串也是可以转的,要和前面传过来的格式一致,如 @XmlElement(name="BeginDate") @DateTimeFormat(pattern="yyyy-MM-dd") private Date begin...

  •     先吐为敬!   最近心血来潮研究nodejs如何完成微信支付功能,结果网上一搜索,一大堆“代码拷贝党”、“留一手”、“缺斤少两”、“不说人话”、“自己都没跑通还出来发blog”、“各种缺少依赖包”、“各种注释都没有”、“自己都不知道在写什么”的程序大神纷纷为了增加自己博客一个帖子的名额而发布了各种千奇百�...

  • 阅读ceph源码过程中需要明确当前操作是由哪个线程发出,此时需要根据线程id来确认线程名称 C++获取线程id是通过系统调用来直接获取 函数描述 头文件: 函数名称:syscall(SYS_gettid) 该函数直接返回了一个pid_t int类型的数字,即为当前线程id 此外函数pthread_s...

  • 面试题 分库分表之后,id 主键如何处理? 面试官心理分析 其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全局唯一的 id 来支持。所以这都是你实际生产环境中必须考虑的问题。 面试题剖析 基于数据库的实现方案 数据库自增 id 这个就是说你的...

  • ORM操作    单表、一对多表操作 1 from django.db import models 2 3 4 class UserGroup(models.Model): 5 title = models.CharField(max_length=32) 6 7 8 class UserInfo(m...

  • 建立如下表: 建表语句: class表创建语句 create table class(cid int not null auto_increment primary key, caption varchar(32) not null)engine=innodb default charset=utf8;student表创建语句 c...