一、数据导出:
目标: 将数据库的数据导出成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的使用)的更多相关文章

  1. Winform数据导出Execl小工具

    前台界面.cs文件 using System; using System.Collections.Generic; using System.ComponentModel; using System. ...

  2. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  3. winform导入导出excel,后台动态添加控件

    思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...

  4. 使用NPOI将数据导出为word格式里的table

    开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. ...

  5. 学习笔记 DataGridView数据导出为Excel

    DataGridView数据导出为Excel   怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...

  6. [转]Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

    本文转自:http://www.cnblogs.com/wuhuacong/archive/2012/03/09/2387680.html Oracle中对数据对象和数据的管理,无疑都是使用PL/SQ ...

  7. DB数据导出工具分享

    一个根据数据库链接字符串,sql语句 即可将结果集导出到Excel的工具 分享,支持sqlserver,mysql. 前因 一个月前朋友找到我,让我帮忙做一个根据sql导出查询结果到Excel的工具( ...

  8. [工作札记]02: .Net Winform控件TreeView最简递归绑定方法

    前言:Treeview控件是我们在WinForm.WebForm开发中经常使用的控件,需要从数据库动态加载数据,然后递归绑定每一个节点:同样,递归的思路在其他程序中也经常运用,包括.Net MVC等. ...

  9. [django]数据导出excel升级强化版(很强大!)

    不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...

随机推荐

  1. 解决删除域用户Exception from HRESULT: 0x80072030

    解决删除域用户异常问题. System.DirectoryServices.DirectoryServicesCOMException was unhandled  Message=在服务器上没有这样 ...

  2. 用户Word写毕业论文时的文献引用方法

    经过网上搜索和自己实践,找到了一种不用第三方工具的文献管理方法 通过将文献定义的成书签的形式,插入到文献中,当文献编号发生变化时,只需进行更新域操作,就可实现文献编号的理新,下面介绍具体方法: 1.首 ...

  3. Adroid学习系列-入门(1)

    1.  安装 安装Eclipse,安装Adroid插件.安装Adroid SDK. 2.  项目目录说明 2.1.       建立Adroid项目 与一般的Java项目一样 )src文件夹是项目的所 ...

  4. ubuntu启动器和dash里应用图标不正常

    在以下目录: /usr/share/applications~/.local/share/applications 添加或编辑(pycharm图标不正常):jetbrains-pycharm.desk ...

  5. 剑指架构师系列-tomcat6通过伪异步实现connector

    首先在StandardService中start接收请求的线程,如下: synchronized (connectors) { for (int i = 0; i < connectors.le ...

  6. 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

  7. perl基本语法--转载

    http://www.cnblogs.com/zhtxwd/archive/2012/03/06/2381585.html 本文介绍从变量类型.操作运算符.控制叙述.子程序.I/O和档案处理. Reg ...

  8. 50 Android Hacks阅读笔记

    Hack 1.善用weightSum和layout_weight. 问题提出:尝试做一个button的宽度是父View的一半的效果. 关键词:weightSum = 1 , layout_weight ...

  9. js代码中的闭包

    作为一个后台开发人员了解前端非常重要,尤其是深处学校实验室做项目时前端把写好的代码直接给你,然后你在修改的时候.我经常做的就是修改前端的代码的HTML和后台交互的部分以及js的ajax部分,之后修改之 ...

  10. Mysql的“Limit”操作

    Limit操作: ,; #返回第6-15行数据 ; #返回前5行 ,; #返回前5行 性能优化: 基于MySQL5.0中limit的高性能,我对数据分页也重新有了新的认识.测试SQL语句1: Sele ...