博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据导出和TreeView
阅读量:4599 次
发布时间:2019-06-09

本文共 3161 字,大约阅读时间需要 10 分钟。

一、数据导出:

将数据库的数据导出成Excel工作表或是Word文档
实际上是将一个泛型集合导出出去
(1)添加控件
saveFileDialog
(2)数据成表格的形式输出出去
<table></table> 拼成html里面的table表格结构,拼成一个字符串,导出出去

(3)字符串拼接效率低,消耗内存大

StringBuilder ss = new StringBuilder();//实例化
ss.Append();//添加

(4)导出数据时开线程节省时间,防止程序假死;进度条显示进度。

代码:

 

          List<Product1> list=null;

             int a = 0;

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);//输出流                                {                    Thread th = new Thread(NewMethod);//实例化线程                    th.IsBackground = true;                    th.Start(sw);//开线程                                   }            }        }       //导出数据的函数        private void NewMethod(object sw)        {            StreamWriter sww = (StreamWriter)sw;            StringBuilder ss = new StringBuilder();//实例化StringBuilder类            ss.Append("
"); sww.Write(ss); sww.Close(); }
");//边框 //表头 ss.Append("
"); b = list.Count();//集合的个数 progressBar1.Maximum = b;//滚动条的最大值是集合的个数 foreach (Product1 u in list) { ss.Append("
"); ss.Append("
"); ss.Append("
"); ss.Append("
"); ss.Append("
"); ss.Append("
"); ss.Append("
"); ss.Append("
"); ss.Append("
"); a++;//每循环一次a加1 if (a <= b)//a
序号 用户名 密码 昵称 性别 年龄 生日 民族
" + u.ProductId + " " + u.ProductName + " " + u.ProductCategory + " " + u.ProductUnit + " " + u.ProductArea + " " + u.ProductDate + " " + u.ProductLif + "

 

二、TreeView

Treeview用于显示按照树形结构进行组织的数据。
Expanded属性表明是否所有的子项都全部展开(包括子项的子项),为True表示全部展开。

private void button1_Click(object sender, EventArgs e)        {            List
list1 = new ChinaData().Select();//一次性查找出数据库中的所有数据 TreeNode tn = new TreeNode("中国"); tn.Tag = "0001";//记录这个节点的编号 treeView1.Nodes.Add(tn); TreeViewBind(tn, list1);//调用函数 } //递归调用自身 private static void TreeViewBind(TreeNode tn, List
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); } } }

 

转载于:https://www.cnblogs.com/zhang-dandan-1/p/5951722.html

你可能感兴趣的文章
赋值文件
查看>>
Vue 数组 字典 template v-for 的使用
查看>>
蓝牙模块选择经验谈
查看>>
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
查看>>
swoolefy PHP的异步、并行、高性能网络通信引擎内置了Http/WebSocket服务器端/客户端...
查看>>
Python学习笔记
查看>>
unshift()与shift()
查看>>
使用 NPOI 、aspose实现execl模板公式计算
查看>>
行为型模式:中介者模式
查看>>
How to Notify Command to evaluate in mvvmlight
查看>>
33. Search in Rotated Sorted Array
查看>>
461. Hamming Distance
查看>>
Python垃圾回收机制详解
查看>>
{面试题1: 赋值运算符函数}
查看>>
Node中没搞明白require和import,你会被坑的很惨
查看>>