业务中经常会遇到批量导入数据库的操作,今天总结一下方法.
本文利用三层的架构的思想。将整个业务分成三部分,分别是界面,业务和数据处理。
先介绍第一种方法:
即先将Excel表格的内容转化到DataTable中,然后再将DataTable导入到SqlServer数据库.
下面看一个小demo
界面上用到的控件是FileUpload和Button
- <span style="font-size: 18px;">protected void btnImport_Click(object sender, EventArgs e)
- {
- string path;//定义文件保存的路径
- // 检查FileUpload是否有指定文件
- if (fupImport.PostedFile == null || fupImport.PostedFile.FileName == "")
- {
- Response.Write("<script>alert('请您选择Excel文件')</script> ");
- return;
- }
- //System.IO.Path.GetExtension获得文件的扩展名
- string fileExt = System.IO.Path.GetExtension(fupImport.FileName).ToString().ToLower();
- if (fileExt == ".xls" || fileExt == ".xlsx")
- {
- //给文件设置路径
- path = "TempPlace/" + this.fupImport.FileName.ToString().Trim();
- //将虚拟路径转化为物理路径
- path = Server.MapPath(path);
- fupImport.SaveAs(path);
- //调用b层的方法把Excel写入到数据库
- if (new BLL().ExcelToDataTable(path))
- {
- //成功导入到sql
- Response.Write("<script>alert('导入成功')</script>");
- }
- }
- else
- {
- //当选择的不是Excel文件时,返回
- Response.Write("<script>alert('只可以选择Excel文件')</script>");
- retu