winform(数据导出、TreeView的使用)
一、数据导出:
目标: 将数据库的数据导出成Excel工作表或是Word文档
基本步骤:
1、首先将数据库中的数据封装成实体类
2、写好查询数据的方法,在主窗体中调用查看所有的数据
3、利用saveFileDialog 和StreamWriter将数据导出去,期间需要用到HTML中的table表格结构
即<table>
<tr><td></td></tr>
</table>
方法1:用字符串拼接,但此法效率低
方法2:
List<Users> list = new List<Users>();
public Form1()
{
InitializeComponent();
list = new UsersData().Select();
int id = ;
foreach (Users u in list)//遍历数据库中的所有数据放到泛型集合中
{
ListViewItem li = new ListViewItem();
li.Text = id.ToString();
li.SubItems.Add(u.UserName);
li.SubItems.Add(u.PassWord);
li.SubItems.Add(u.NickName);
li.SubItems.Add(u.SexStr);
li.SubItems.Add((DateTime.Now.Year - u.Birthday.Year).ToString());
li.SubItems.Add(u.BirthdayStr);
li.SubItems.Add(u.NationName);
listView1.Items.Add(li);
id++;
}
}
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "Excel工作表|*.xlsx|Word文档|*.doc";//保存的时候需要显示的文件保存类型
saveFileDialog1.FileName = DateTime.Now.Year + "年" + DateTime.Now.Month + "月人员数据";//文件默认名称
DialogResult dr = saveFileDialog1.ShowDialog(); //获取一个用户要保存的路径
if (dr == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);
int id = ;
StringBuilder ss = new StringBuilder();
ss.Append("<table border=\"1\">");
ss.Append("<tr><td>序号</td><td>用户名</td><td>密码</td><td>昵称</td><td>性别</td><td>年龄</td><td>生日</td><td>民族</td></tr>");
foreach (Users u in list)
{
ss.Append("<tr>");
ss.Append("<td>" + id + "</td>");
ss.Append("<td>" + u.UserName + "</td>");
ss.Append("<td>" + u.PassWord + "</td>");
ss.Append("<td>" + u.NickName + "</td>");
ss.Append("<td>" + u.SexStr + "</td>");
ss.Append("<td>" + (DateTime.Now.Year - u.Birthday.Year) + "</td>");
ss.Append("<td>" + u.BirthdayStr + "</td>");
ss.Append("<td>" + u.NationName + "</td>");
ss.Append("</tr>");
id++;
}
ss.Append("</table>");
sw.Write(ss);
sw.Close();
}
二、 TreeView的使用
1、依然是将数据库中的数据封装成实体类
2、写查询所有数据的方法(以下以中国、省、市、县为例)
3.主窗体中的按钮事件和方法
private void button1_Click(object sender, EventArgs e)
{
List<ChinaStates> list1 = new ChinaData().Select();
TreeNode tn = new TreeNode("中国");
tn.Tag = "";//用户自定义数据
treeView1.Nodes.Add(tn);
TreeViewBind(tn, list1); } private static void TreeViewBind(TreeNode tn, List<ChinaStates> list)
{
foreach (ChinaStates c in list)
{
if (c.ParentAreaCode == tn.Tag.ToString())
{
TreeNode tnn = new TreeNode(c.AreaName);
tnn.Tag = c.AreaCode;
tn.Nodes.Add(tnn);
TreeViewBind(tnn, list);
}
}
private void button1_Click(object sender, EventArgs e)
{
List<ChinaStates> list1 = new ChinaData().Select();
TreeNode tn = new TreeNode("中国");
tn.Tag = "";
treeView1.Nodes.Add(tn);
tn.Nodes.Add(new TreeNode("加载中..."));
} private static void TreeViewBind(TreeNode tn, List<ChinaStates> list)
{
List<ChinaStates> list = new ChinaData().Select(tn.Tag.ToString());
foreach (ChinaStates c in list)
{
TreeNode tnn = new TreeNode(c.AreaName);
tnn.Tag = c.AreaCode;
tn.Nodes.Add(tnn);
tnn.Nodes.Add(new TreeNode("加载中..."));
}
} private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
List<ChinaStates> list = new ChinaData().Select(e.Node.Tag.ToString());
e.Node.Nodes.Clear();
foreach (ChinaStates c in list)
{
TreeNode tnn = new TreeNode(c.AreaName);
tnn.Tag = c.AreaCode;
e.Node.Nodes.Add(tnn);
tnn.Nodes.Add(new TreeNode("加载中..."));
}
}
ToolTip后台代码
1.ToolTip.Show时显示不能隐藏解决方法:
this.toolTip1.Dispose();
this.toolTip1 = new ToolTip();
this.toolTip1.Show("个性签名更新:"+U.Write,this.U_Write);
2.
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = ;
toolTip1.InitialDelay = ;
toolTip1.ReshowDelay = ;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.U_Write, "个性签名更新:" + U.Write);
winform(数据导出、TreeView的使用)的更多相关文章
- Winform数据导出Execl小工具
前台界面.cs文件 using System; using System.Collections.Generic; using System.ComponentModel; using System. ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- winform导入导出excel,后台动态添加控件
思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...
- 使用NPOI将数据导出为word格式里的table
开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. ...
- 学习笔记 DataGridView数据导出为Excel
DataGridView数据导出为Excel 怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...
- [转]Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
本文转自:http://www.cnblogs.com/wuhuacong/archive/2012/03/09/2387680.html Oracle中对数据对象和数据的管理,无疑都是使用PL/SQ ...
- DB数据导出工具分享
一个根据数据库链接字符串,sql语句 即可将结果集导出到Excel的工具 分享,支持sqlserver,mysql. 前因 一个月前朋友找到我,让我帮忙做一个根据sql导出查询结果到Excel的工具( ...
- [工作札记]02: .Net Winform控件TreeView最简递归绑定方法
前言:Treeview控件是我们在WinForm.WebForm开发中经常使用的控件,需要从数据库动态加载数据,然后递归绑定每一个节点:同样,递归的思路在其他程序中也经常运用,包括.Net MVC等. ...
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
随机推荐
- 【转】--在Android源码树中添加userspace I2C读写工具(i2c-util)
通过/dev/i2c-n节点,用户可以在userspace直接访问板上的i2c外设寄存器,主要是透过I2C_RDWR这个IO控制命令将i2c_msg数组传递给kernel去执行.下面的代码可以完成这个 ...
- A successful Git branching model
这个模型比较全,收藏一下,原文: http://nvie.com/posts/a-successful-git-branching-model/ 关于这个模型中的hotfix只适应最新的Release ...
- Linux系统下安装rz/sz命令及使用说明
对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令.今天,我们 ...
- css hack 整理
<ul> <li>"_" ------ IE6</li> <li>"-" ------ IE6</li&g ...
- 编译安装GCC 4.7.2
from:http://blog.chinaunix.net/uid-20717979-id-3485672.html 安装gcc需要GMP.MPFR.MPC这三个库,可从ftp://gcc.gnu. ...
- 快乐的JS正则表达式(二)
在上一篇中介绍了一个test方法,在本文中将使用另外一个,exec方法可以找到匹配的结果并且返回结果以及位置.exec("正则"): 简单测试: var str = "{ ...
- Unity 中的协同程序
今天咱就说说,协同程序coroutine.(这文章是在网吧敲的,没有unity,但是所有结论都被跑过,不管你信得过我还是信不过我,都要自己跑一下看看,同时欢迎纠错)先说说啥是协程:协同程序是一个非常让 ...
- keepalived程序包
keepalived自带两个程序包 1. keepalived守护进程 [root@lvs /root]# keepalived –-helpkeepalived Version 0.6.1 (06/ ...
- Mysql学习笔记(十一)临时表+视图
学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表 临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数 ...
- statpot:使用mongo+bootstrap+highcharts做统计报表
最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度.客户端会调用一个接口来记录接口的访问情况,我的需求就需要分析这些数据,然后做出个统计报表. 需求实现 最初的时候想着每天把这些接口访问 ...