WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。
来吧!一起学起来!
- WPF入门到放弃(一) | 安装与创建
- WPF入门到放弃(二) | 初识XAML
- WPF入门到放弃(三)| 制作串口调试助手
- WPF入门到放弃(四)| 给串口调试助手列表赋值(附调试软件)
- WPF入门到放弃(五)| 串口的读取与写入(程序&附串口调试精灵)
- WPF入门到放弃(六)| 画面优化与发布(附源程序)
- WPF入门到放弃(七)| 常用布局控件的用法
- WPF入门到放弃(八)| 常用的控件(二)
说明:
本文主要介绍WPF(Windows Presentation Foundation),是微软推出的一项基于windows操作系统、.NET平台的C/S客户端构建技术。
软件下载地址:
https://visualstudio.microsoft.com/zh-hans/vs/
这里使用的是Visual Studio 2019 社区版
提示:
文章附带资料下载地址的获取,
请关注“剑指工控“微信公众号后,
添加管理员,
加入剑指工控微信群后获取。
第9讲
读取excel数据并写入sqlite数据库中
本期主要实操讲解如何实现读取excel数据并写入到sqlite数据库中。
新建一个excel的窗口,
同时将StartupUri="test.xaml"改为StartupUri="Excel.xaml"。
- 用ListBox显示数据,Button用于触发读取excel数据。前台代码如下,不在赘述。
新建一个excel,并做一些测试数据。
- 先把excel的数据读取出来,显示在上一节刚介绍的ListBox上。
- 安装NPOI库,在不安装office的时候也是可以读写的,速度很快。
读取excel数据主要使用:
- using NPOI.HSSF.UserModel;
- using NPOI.SS.UserModel;
- using NPOI.XSSF.UserModel;
这三个名称空间
- 使用文件流的方式读取excel,先添加using System.IO;
- FileStream对象表示在磁盘或网络路径上指向文件的流。
- FileStream(String, FileMode, FileAccess):使用指定的路径、创建模式和读/写权限初始化 FileStream 类的新实例。
- @"C:UserscylDesktopstudent.xlsx"指定文件名。
- FileMode.Open 打开现有的文件,流指向文件的开头
- FileAccess.Read 打开文件,用于只读
- var wk = new HSSFWorkbook(fs); 把文件中的数据写入wk中
- ISheet st = wk.GetSheetAt(0);读取第一个sheet数据
- 读取0行的数据并显示在ListBox上:
for (int i = 0; i < 3; i )
{
listbox.Items.Add(st.GetRow(0).GetCell(i).StringCellValue);
}
- 运行时显示报错,原来是HSSF使用于2007之前的xls版本,XSSF适用于2007及其之后的xlsx版本。
- 将HSSFWorkbook(fs)改为XSSFWorkbook(fs);则正常。
下面读取第二行的数据
st.GetRow(0)改为st.GetRow(1)。
- 原来Excel数据age是个数字类型,把一个数字类型读取出一个字符串会报错。可以将数据直接转换成string。
- listbox.Items.Add(st.GetRow(1).GetCell(i).StringCellValue 改为 listbox.Items.Add(st.GetRow(1).GetCell(i).ToString());
- 新建一个文本文档,将名称改为:student.db
- 使用Database4.exe 免安装连接数据库工具(入群后,找群管理员!)
- 选择我们新建的一个student数据库。
- 创建一个表
- 创建一个表包含name、age、sex三个字段。
- 点击保存,并给表取个student1名字
- 查询表数据,目前是空数据
下面将excel数据写入到sqlite数据库中,需要安装System.Data.sqlite。
- 使用List泛型集合来转存excel数据,将来保存sql语句会简单点。
- string dbPath ="Data Source=" @"C:UserscylDesktopstudent.db"; 连接的字符串
- SQLiteConnection con = new SQLiteConnection(dbPath); 建立一个连接
- con.Open();打开连接
- string sql = ""; sql = "insert into student1 values ('" mList[0] "','" mList[1] "','" mList[2] "') "; 初始化sql语句,并插入数据。
- SQLiteCommand command = new SQLiteCommand(sql, con); 新建sql命令
- command.ExecuteNonQuery();执行sql命令
- con.Close();关闭连接
执行效果:
下期主要实现将sqlite数据读取写入到excel中以及将连接数据库语句进行封装以方便多次使用时的复用功能。