一、数据导出:
目标: 将数据库的数据导出成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. [转]zetex.lib

    *BAL74 ZETEX Spice Model Last revision 24/8/92*NOTES: FOR RF OPERATION ADD PACKAGE INDUCTANCE 0F 2.5 ...

  2. Populating Next Right Pointers in Each Node II--leetcode难题讲解系列

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  3. 深入浅出MySQL 数据库开发、优化与管理维护(第2版) -- 读书笔记 -- 基础篇

      1.切换数据库 use blog; 2.显示当前数据库 所有的表. show tables; +----------------+ | Tables_in_blog | +------------ ...

  4. python 字符串替换

    字符串替换可以用内置的方法和正则表达式完成.1用字符串本身的replace方法: a = 'hello word'b = a.replace('word','python')print b 2用正则表 ...

  5. Ubuntu 配置AP总结

    1.这个是使用别人写的一个GUI来配置,:http://hi.baidu.com/lexiangtaotao/item/5d4e87f22db132c70cd1c86f 2.使用hostapd配置:h ...

  6. apache 500错误

    一直以为开了error_log,没想没有加,于是折腾了好久. 开启error_log后,发现是xdebug的max_nesting_level值太小了. 还一个原因是.htaccess文件中的 < ...

  7. js替换指定字符串

    // var a = "212"; // var b = []; // for(var i=0;i<a.length;i++){ // if(a[i]=="1&qu ...

  8. 栈的图文解析 和 对应3种语言的实现(C/C++/Java)

    概要 本章会先对栈的原理进行介绍,然后分别通过C/C++/Java三种语言来演示栈的实现示例.注意:本文所说的栈是数据结构中的栈,而不是内存模型中栈.内容包括:1. 栈的介绍2. 栈的C实现3. 栈的 ...

  9. [ML] Naive Bayes for email classification

    20 Newsgroups (Original) Author: Jeffrey H 1. Introduction This is only a test report for naive baye ...

  10. iOS-AFNetworking-上传图片

    一.AFNetworking上传图片 /** 需要Demo,可留言 */ 1.利用AFnetworking上传图片. 2.注意将UIImage类型转化为NSData类型,传给后台. 二.Demo // ...