将数据库的数据导出成Excel工作表或是Word文档
1、首先将数据库中的数据封装成实体类
2、写好查询数据的方法,在主窗体中调用查看所有的数据
3、利用saveFileDialog 和StreamWriter将数据导出去,期间需要用到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 }