ASP.NET数据导入到数据库

《ASP.NET数据导入到数据库》
开发工具与关键技术:Visual Studio / MVC
作者:肖春庆
撰写时间:2019年04月25日
在我们使用软件的过程当中,少不了把数据导入的数据库里。那么视图中的数据类型是不相同,我们是如何把数据转换,又如何把数据导入到数据库里呢?如果数据不正确怎样限制用户不能导入到数据库里?导入说通过接受Excel工作表的数据把数据一一导入到数据库里。找到Excel表格,找到表头使它对应数据库里的表头,把数据导入的数据库里。为了数据库的安全,在导入数据库前需要检查数据是否有问题。
为了导入的数据与数据库里的数据模型一致,开发者要提供数据模板给用户,用户按照数据模板填写数据,然后把模板的数据导入到对应的数据库里。实现代码:
在这里插入图片描述
用户要将数据导入到数据库里,第一步下载模板。开发者一般把模板放到项目中,我们只有找到存储模板的路径即可。要以文件的格式进行下载,获取自己的服务器中当前的项目位置进行拼接,找到自己页面存储数据导入模板的路径进行连接。应用到NPIO把文件转换流的模式进行返回操作。判断通过IO流是否可以读取到返回信息。如果读取不到模板信息声明文件不存在,用户需要联系开发者进行模板维护;如果可以读取,把链接转换文件模板的形式进行返回,让用户下载导入数据模板。为了再次确定数据模式,给它设置正确的数据返回到视图中,检查后才导入数据库。
在有工作簿的情况下,工作表一定要有与数据库类型一样数据内容,但一切数据正常的时候,开始读取数据。把Excel表格转换成流的格式,然后形成工作簿。
应用IO流的形式获取文件,判断传过了的文件。由于Excel表有多种类型,要判断提交表格的类型,是否为下载模板格式的xls.类型。
获取模板文件的代码:Path.GetExtension(file.FileName);
读取到文件后进行判断类型是否为xls.的形式。因为文件存储形式是以二进制的形式,把它转换成流,然后转换成工作簿。将内存流转换成工作簿代码:
NPOI.SS.UserModel.IWorkbook workbook = new HSSFWorkbook(excelFileStream);
在确定工作表有正确数据内容,然后根据工作表的表头对应的查询出你要保存到的数据库里,将名称获取对应的保存位置。实现代码:
在这里插入图片描述
根据数据内容取出工作表,并且声明一个变量来接受工作表里面的数据。应用ISheet获取工作簿里,第一张工作表,从工作表的表头那一行,开始进行判断内容的正确性,它是否有数据,并且数据的内容以数据库里保存的位置是否一致。记录表格的行数和列数为多少,借用for循环添加标题行单元格的值,并且读取数据里面的行。通过遍历行中的每一个单元格,获取标题行各个单元格的数据,将获取到的标题行的数据放到datatable中,将填入数据的dtRow添入dtExcel。如果在Excel表格的数据显示视图里是下拉框的形式,那么要声明一个变量使它等于数据库里面存储模式(例如:学生所在的学院,自定义一张学院表,使她等于我数据库里的学院表,然后获取Excel表格的为学院的数据,导入数据库里的这一张表中,其它文本框可以进行直接保存)。
应用遍历循环,获取DataRow的集合,把Excel表格的每一个字段去和数据库保存的位置里对比。实现代码:
在这里插入图片描述
创建对象保存每一条数据,获取数据的名称使它去到数据库里匹配,如果能够找到说明数据是正确的。获取Excel表格里面表头为学院的数据,使它和之前查询获取到数据库里的学院表的信息进行判断是否正确,然后才可以把数据保存到数据库对应的表里。获取Excel表格的专业信息使它和数据库里的专业ID对应学院表下的对应专业。如此类推!其它的数据让它自己去获取数据库里对应的表和保存位置。把创建的对象保存数据返回到视图中,并且记录它成功的数据。
把Excel表格的数据导入的数据库里,如同把数据新增到数据库里,所以保存的代码和新增保存的代码一样。
在这里插入图片描述
获取视图中提交保存的数据,使它新增保存到对应的数据库表。判断视图提交的数据不为零,并实力化对象模组。把Excel表格的学院保存到数据库里的学院表里,把学生学号保存到我数据库的学号表里。就这样完成数据导入到数据库里。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值