一、数据导出:
目标: 将数据库的数据导出成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. Swift 集合类型

     Swift语言提供数组和字典的集合类型  Swift 语言里的数组和字典中存储的数据值类型必须明确 ,即数组中只能存放同类型的数据. 1: 数组 数组的创建 var shoppingList: St ...

  2. 使用 Portable Class Library(可移植类库)开发 Universal Windows App

    今天在这里跟大家聊聊关于 Windows Universal 应用夸平台的问题,首先Universal Windows App的定义相信大家已经有所了解了(如果你是一个刚刚接触 Universal A ...

  3. drupal7 Views Bulk Operations (VBO)

    介绍 drupal通常用views制作列表,列表也应该能实现某些操作,例如删除.审批等,并且应该是批量进行的,VBO的存在就是为了实现views批量操作功能.事实上,drupal把操作统称为actio ...

  4. CSS HACK 及常见问题

    一.CSS常用hack 1.方式一:条件注释法 这种方式是IE浏览器专有的Hack方式,微软官方推荐使用的hack方式.举例如下 只在IE下生效 <!--[if IE]> 这段文字只在IE ...

  5. ps图像渐变

    整理自:http://zhidao.baidu.com/question/16374167.html 1.用ps打开图片 2.在切换至英文输入法状态下(下面的操作均如此)按q 快捷键q的作用是切换标准 ...

  6. 不使用ajax,无刷新提交表单

    <form action="form_action.asp" method="get" onsubmit"check_form()" ...

  7. 利用Cydia Substrate进行Android HOOK(二)

    在前面关于Substrate的介绍中我们已经讲了用Substrate hook java代码,现在我们讲下怎么用它hook native代码.hook native代码我们需要编写Substrate ...

  8. The connection to adb is down, and a severe error has occured.(DDMS中没有真机)

    最近老是出现真机用着用着就掉线了,在DDMS中看不到,运行项目出现选择运行机器中也没有,360助手连接电脑OK,任务管理器中没有adb.exe,重启eclipse不行,只能每次重启电脑.按照http: ...

  9. 将XmlDocument转换成XDocument

    XmlDocument xml=new XmlDocument(); xml.LoadXml(strXmlText); XmlReader xr=new XmlNodeReader(xml); XDo ...

  10. [转载]AxureRP 7超强部件库下载

    很多刚刚开始学习Axure的朋友都喜欢到网上搜罗各种部件库(组件库)widgets library ,但是网络中真正实用的并且适合你使用的少之又少,最好的办法就是自己制作适合自己工作内容的部件库. 这 ...