数据导出和TreeView的使用

                              将数据库的数据导出成Excel工作表或是Word文档

1、首先将数据库中的数据封装成实体类

2、写好查询数据的方法,在主窗体中调用查看所有的数据

3、利用saveFileDialogStreamWriter将数据导出去,期间需要用到HTML中的table表格结构

<table>

<tr><td>添加数据</td></tr>

<tr><td>添加数据</td></tr>

</table>

拼接成一个字符串将数据导出去。

例:

 1 public partial class Form1 : Form
 2     {
 3         List<Users> list = new List<Users>();
 4 
 5         public Form1()
 6         {
 7             InitializeComponent();
 8 
 9             list = new UserData().Select();
10 
11             int id = 1;
12 
13             foreach(Users u in list)//遍历数据库中的所有数据放到泛型集合中
14             {
15                 ListViewItem li = new ListViewItem();
16                 li.Text = id.ToString();
17                 li.SubItems.Add(u.UserName);
18                 li.SubItems.Add(u.PassWord);
19                 li.SubItems.Add(u.NickName);
20                 li.SubItems.Add(u.SetStr);
21                 li.SubItems.Add(u.BirthdayStr);
22                 li.SubItems.Add(u.NationName);
23 
24                 listView1.Items.Add(li);
25                 id++;
26             }
27 
28         }
29 
30         private void button1_Click(object sender, EventArgs e)
31         {
32             saveFileDialog1.Filter = "Excel工作表|*xlsx|Word文档|*doc";//保存的时候需要显示的文件保存类型
33             saveFileDialog1.FileName = DateTime.Now.Year + "" + DateTime.Now.Month + "" + "人员数据";//文件默认名称
34             DialogResult dr = saveFileDialog1.ShowDialog();//获取一个用户要保存的路径
35             if (dr == DialogResult.OK)
36             {
37                 StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);
38                 int id = 1;
39 
40                 StringBuilder ss = new StringBuilder();
41                 ss.Append("<table border="1">");
42                 ss.Append("<tr><td>序号</td><td>用户名</td><td>密码</td><td>昵称</td><td>性别</td><td>生日</td><td>民族</td></tr>");
43                 foreach(Users u in list)
44                 {
45                     ss.Append("<tr>");
46                     ss.Append("<td>"+id+"</td>");
47                     ss.Append("<td>" + u.UserName + "</td>");
48                     ss.Append("<td>" + u.PassWord + "</td>");
49                     ss.Append("<td>" + u.NickName + "</td>");
50                     ss.Append("<td>" + u.SetStr + "</td>");
51                     ss.Append("<td>" + u.BirthdayStr + "</td>");
52                     ss.Append("<td>" + u.NationName + "</td>");
53                     ss.Append("</tr>");
54                 }
55                 ss.Append("</table>");
56                 sw.Write(ss);
57                 sw.Close();
58             }
59 
60         }
61     }

                                                   TreeView的使用

1、依然是将数据库中的数据封装成实体类

2、写查询所有数据的方法(以下以中国、省、市、县为例)

 1 public List<ChinaStates> Select()
 2         {
 3             List<ChinaStates> list = new List<ChinaStates>();
 4             cmd.CommandText = "select *from ChinaStates";
 5             conn.Open();
 6             SqlDataReader dr = cmd.ExecuteReader();
 7             if (dr.HasRows)
 8             {
 9                 while (dr.Read())
10                 {
11                     ChinaStates c = new ChinaStates()
12                     {
13                         AreaCode = dr[0].ToString(),
14                         AreaName = dr[1].ToString(),
15                         ParentAreaCode = dr[2].ToString()
16                     };
17                     list.Add(c);
18                 }
19             }
20             conn.Close();
21             return list;
22         }

3、主窗体中的按钮事件和方法

 1 public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6         }
 7 
 8         private void button1_Click(object sender, EventArgs e)
 9         {
10             List<ChinaStates> list1 = new ChinaData().Select();
11             TreeNode tn = new TreeNode("中国");
12             tn.Tag = "0001";
13             treeView1.Nodes.Add(tn);
14             TreeViewBind(tn, list1);
15 
16         }
17 
18         private static void TreeViewBind(TreeNode tn, List<ChinaStates> list)
19         {
20             foreach (ChinaStates c in list)
21             {
22                 if (c.ParentAreaCode == tn.Tag.ToString())
23                 {
24                     TreeNode tnn = new TreeNode(c.AreaName);
25                     tnn.Tag = c.AreaCode;
26                     tn.Nodes.Add(tnn);
27                     TreeViewBind(tnn, list);
28                 }
29             }
30         }
31 
32     }
原文地址:https://www.cnblogs.com/xtq0313/p/5942486.html