Excel数据导入到数据库

Excel是用来存储表格数据的一个办公软件,但它无法保证数据的安全性,所以我们会把重要的数据存储到能够保证数据安全性的数据库里。
但是对于未接触过数据库的人来说,使用数据库会比较麻烦;而Excel就比较直观,易操作。为了能够操作简单的将数据存到数据库中,所以做出了能够简单的将Excel里的数据直接导入到数据库里的方法。
下面是将Excel数据导入到数据库的一个过程:
Excel数据导入到数据库
1.
实例化一个自己封装的一个工具类,在这里基本上用到的就只是给出一个状态或者给出文本提示。
2.
定义两个变量,分别用来记录保存成功的数据条数和已存在的数据条数。为了防止添加的数据重复所以在这里定义一个记录已存在的条数。
3.
创建类型为List的变量(创建一个可以接收类型为StudentUserInfor的List类型)。
4.
将保存在Session里面的数据赋值给创建的变量listStudent,由于数据类型的不同,所以要将Session里面的数据类型转化为List类型。Session里面的数据是通过一个另一个控制器方法存入的,所以在赋值之前要先判断一下里面是要有数据才能进行赋值。
5.
判断一下被赋值变量listStudent是不是成功被赋值,如果没有,那么就返回一个false,提示数据为空(因为msg.State默认为false,所以省略)。
6.
创建一个int类型的变量,根据主外键关系进行连表,通过条件筛选出数据查询表里有没有相同的所有数据,然后将所有相同数据的条数返回给定义的int类型的变量。
7.
判断一下count这个记录返回相同数据的变量是否有数据。如果没有数据,那就表明导入的一条数据没有与数据库里储存的数据有相同的存在,那么就可以进行下一步操作,如果有一条相同数据存在,就将那一条数据用最开始定义好的变量进行计数(oldCount++)。
8.
把这一条数据库中没有对应重复的数据存到数据库里。实例化所关联到的PW_User表,将对应的数据以相同的类型、格式进行赋值,再用Add()方法将实例化表的对象添加到对应表里。
9.
#region里包含的内容的操作和上面一个步骤是一样的(由于代码量过大,不好截图所以进行了压缩),后面每一个表进行添加都要通过一个封装的函数SaveChanges判断一下上面添加数据是否成功,当数据库的值发生改变时SaveChanges就会返回一个1(每一次变化只能返回一次,下一次就会返回为0),当实例化的数据库发生改变,SaveChanges返回1,代表添加成功,可以进行下面的操作。
10.
由于这个方法每一次只能添加一条数据,但导入的数据肯定不止一条,要想导入大量的数据就要循环调用这个方法。for循环是循环遍历一个数组,foreach循环是循环遍历一个对象或数组,我们这里是需要循环遍历一个对象,所以这里用的是foreach。
11.
用最开始定义用来计数的变量SaveCount记录成功的条数,它的值就等于自身加上判断条件myModels.SaveChanges的返回值(SaveCount+=myModels.SaveChanges())。将这个运算方法放到循环体内,因为判断条件每一次添加成功都会返回1,再利用循环就可以记录到添加成功的所有条数。
12.
返回一个true,用字符串拼接返回一个文本提示,导入多少条、存在多少条、成功保存多少条。
用这样的方法让数据导入到数据库的方式变得简单化,方便了使用。之前还要先将数据在Excel里进行存放,然后在数据库里进行附加、新增等等,如果没有接触过数据库的人想使用数据库来保证数据的安全,那就有点麻烦了。