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]; }
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("保存成功"); }
功能很简单,代码也很简单,拿出来分享一下,大家勿喷啊,不过vs2012打包发布倒是挺麻烦的,我下载了一个InstallShield2013LimitedEdition,还是发布不成功,下一篇写一个vs2012打包发布,和大家讨论一下