c#合适新手练习的Demo案例

本文介绍了一个基于XML的数据管理系统,实现了用户注册、登录及个人资料管理等功能。系统通过二级关联菜单选择城市,并能根据城市查询对应的区。此外,还支持用户图片的上传与下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:操作功能
注册
登录
退出
2:功能实现
    2.1:使用二级关联菜单选择城市
    2.2:上传图片,使用相对路径灵活保存。
    2.3:在登录成功后回显用户数据,并提供下载图片

    2.4:使用xml保存数据。

3:核心代码

|--xml保存数据库

/*
 * 由SharpDevelop创建。
 * 用户: Administrator
 * 日期: 03/13/2014
 * 时间: 21:41
 * 
 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
 * 
 */
using System;
using System.Xml;
using System.Collections;
using demo_chechBox.baseMain;
using System.Text;

namespace demo_chechBox.tool
{
	/*解析城市xml*/
	public class AnalyticalXml
	{
		public static string  citiesXmlName = "../../xml/comboBox/Cities.xml";
		public static string districtsXmlName = "../../xml/comboBox/Districts.xml";
		public static string userXmlName = "../../xml/dataSource/user.xml";
		
		public AnalyticalXml()
		{
		}
		
		/*获取所有城市*/
		public static IList findAllCity()
		{
			IList array = new ArrayList();
			
			XmlDocument xmlDoc = getXmlDocument(citiesXmlName);
			
			XmlNodeList xnlList = xmlDoc.SelectNodes("Cities/City");
			
			foreach(XmlNode x in xnlList)
			{
				array.Add(x.InnerText);
			}
			
			return array;
		}
		
		/**根据城市查询区*/
		public static IList findAllDistricts(string city)
		{
			IList array = new ArrayList();
			
			//获取城市ID
			XmlElement xe = getElementByCity(city);
			string cityId = xe.GetAttribute("ID");
			
			//查询城市下边的子区
			XmlDocument xmldoc = getXmlDocument(districtsXmlName);
			XmlNodeList nodeList = xmldoc.SelectNodes("Districts/District[@CID='"+cityId+"']");
			
			foreach (XmlNode xn in nodeList) {
				array.Add(xn.InnerText);
			}
			
			return array;
		}
		
		/**以username为条件查询指定User*/
		public static User getUser(string username)
		{
			XmlDocument xmldoc = getXmlDocument(userXmlName);
			
			XmlElement xe = (XmlElement)xmldoc.SelectNodes("users/user[@username='"+username+"']")[0];
			if(xe!=null)
			{
				User user = new User();
				user.setPassword(xe.GetAttribute("password"));
				user.setUsername(xe.GetAttribute("username"));
				user.setAddress(xe.GetAttribute("address"));
				user.setFileName(xe.GetAttribute("fileName"));
				user.setHobby(xe.GetAttribute("hobby"));
				user.setPhoto(xe.GetAttribute("photo"));
				user.setRemarks(xe.GetAttribute("remarks"));
				user.setBirtday(xe.GetAttribute("birtday"));
				user.setGender(xe.GetAttribute("gender"));
				return user;
			}
			return null;
		}
			
		
		public static XmlElement getElementByCity(string city)
		{
			
			XmlDocument xmlDoc = getXmlDocument(citiesXmlName);
			
			XmlNode xmlde = xmlDoc.SelectNodes("Cities/City[@CityName='"+city+"']")[0];
			
			XmlElement xe = xmlde as XmlElement;
			
			return xe;
		}
		
		//保存user
		public static void saveUser(User user)
		{
			XmlDocument xmldoc = getXmlDocument(userXmlName);
			XmlNode root = xmldoc.DocumentElement;
			
			//创建新节点
			XmlElement newChild = xmldoc.CreateElement("user");
			newChild.SetAttribute("guid",user.Guid);
			newChild.SetAttribute("username",user.getUsername());
			newChild.SetAttribute("password",user.getPassword());
			newChild.SetAttribute("gender",user.getGender());
			newChild.SetAttribute("birtday",user.getBirtday());
			newChild.SetAttribute("hobby",user.getHobby());
			newChild.SetAttribute("address",user.getAddress());
			newChild.SetAttribute("photo",user.getPhoto());
			newChild.SetAttribute("remarks",user.getRemarks());
			newChild.SetAttribute("fileName",user.getFileName());
			
			//添加users的最后一个子级节点后面
			//XmlNode refChild = xmldoc.SelectNodes("users")[0];
			XmlNode child = root.LastChild;
			if(child!=null)
			{
				root.InsertAfter(newChild,root.LastChild);
			}
			else
			{
				root.AppendChild(newChild);
			}
			
			//保存
			XmlTextWriter xmlWriter = new XmlTextWriter(userXmlName,Encoding.GetEncoding("utf-8"));
			xmlWriter.Formatting = Formatting.Indented;
			xmldoc.Save(xmlWriter);
			xmlWriter.Close();
		}
		
		
		public static XmlDocument getXmlDocument(string xmlName)
		{
			XmlDocument xmldoc = new XmlDocument();
			try
			{
				xmldoc.Load(xmlName);
			}
			catch(Exception ex)
			{
				throw new OverflowException("找不到"+xmlName+"文件,抛出"+ex.Message);
			}
			return xmldoc;
		}
	}
}


|--结合控件完成,灵活完成上传下载

上传

		public void SaveImgFile(User user)
		{
			string photo = user.getPhoto();
			//保存文件名
			user.setFileName(Path.GetFileName(photo));
			
			//保存的路径
			DateTime dt = DateTime.Now;
			string guidName = Guid.NewGuid().ToString().Replace("-","");
			string extensionName = Path.GetExtension(photo);
		
			string createDirectory = string.Format("upload\\{0}",dt.ToString("yyyy-MM-dd"));
			if(!Directory.Exists(createDirectory))
			{	
				Directory.CreateDirectory(createDirectory);
			}
			user.setPhoto(string.Format("{0}\\{1}{2}",createDirectory,guidName,extensionName));
				
			string savePath = System.Environment.CurrentDirectory;
			savePath = string.Format("{0}\\{1}",savePath,user.getPhoto());
			
			File.Copy(photo,savePath);
		}


下载

	
void DwonloadClick(object sender, EventArgs e)
		{
			saveFile.FileName = "c:\\"+label_fileName.Text;
			saveFile.Filter = "jpg文件(*.jpg)|*.jpg|gif文件(*.gif)|*.gif|png文件(*.png)|*.png";
			saveFile.InitialDirectory = @"D:\Documents\Pictures";
			 if(saveFile.ShowDialog()==DialogResult.OK)
  			  {
			      string filename=saveFile.FileName;
			      SaveFile(filename);
			  }
				//Stream stream = saveFile.OpenFile();
		}
		public void SaveFile(string fileName)
		{
		  Image image = showUploadImg.Image;
	      Bitmap bit = new Bitmap(image);
	      bit.Save(fileName,  
	      System.Drawing.Imaging.ImageFormat.Bmp);
		}
	}
 
 
 

下面介绍功能演示图

项目源代码下载

C# 网络通信开发训练-32个实例 C# 网络通信开发训练 实例01 更改计算机名称...... 670 实例02 通过计算机名获取IP地址...... 672 实例03 通过IP地址获取主机名称...... 673 实例04 修改本机IP地址...... 674 实例05 得到本机MAC地址...... 677 实例06 获得系统打开的端口和状态...... 678 实例07 更改DNS地址...... 680 14.2 远程控制...... 681 实例08 远程控制计算机...... 682 实例09 远程服务控制...... 683 14.3 网络复制文件...... 686 实例10 网络中的文件复制...... 686 14.4 局域网管理...... 688 实例11 在局域网内发送信息...... 688 实例12 获取网络中所有工作组名称...... 690 实例13 列出工作组中所有计算机...... 692 实例14 获取网络中某台计算机的磁盘信息...... 693 实例15 映射网络驱动器...... 694 14.5 网络连接与通信...... 696 实例16 编程实现Ping操作...... 696 14.6 网络聊天室...... 698 实例17 利用C#设计聊天程序...... 698 实例18 编写网络聊天室...... 700 18.1 Windows服务开发...... 782 实例01 将局域网聊天程序开发成Windows服务...... 782 第15章 Web编程....... 703 15.1 浏览器应用...... 704 实例01 制作自己的网络浏览软件...... 704 实例02 XML数据库文档的浏览...... 708 15.2 上网控制...... 710 实例03 定时上Internet. 710 实例04 监测当前网络连接状态...... 712 15.3 邮件管理...... 713 实例05 收取电子邮件...... 713 实例06 SMTP协议发送电子邮件...... 717 15.4 网上信息提取...... 719 实例07 提取并保存网页源码...... 719 实例08 提取网页标题...... 722 16通用实例训练 实例01 CS结构Tcp通信训练 实例02 CS结构UDP通信训练 实例03 P2P技术训练 实例04 TCP发送文件训练
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值