private string ExcelToStudent()
{
/*---*/
var preStr = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_";//文件前缀 var httpFile = Request.Files["fileUpload"]; bool flag = !(httpFile.ContentType != "application/vnd.ms-excel"); if (httpFile.ContentType != "application/octet-stream")
{
flag = false;
}
if (flag)
{
return "{\"error\":\"文件格式不正确!请先下载模板再导入数据!\",\"msg\":\"gzz\"}";
}
if (httpFile != null)
{
var fileName = httpFile.FileName; const string fileUrl = "../../../UploadFile/temp/"; var uploadPath = Server.MapPath(fileUrl) + preStr + fileName;//上传路径 if (!Directory.Exists(Server.MapPath(fileUrl))) //文件夹不存在
{
Directory.CreateDirectory(Server.MapPath(fileUrl));
} httpFile.SaveAs(uploadPath);//文件上传 fileName = fileName.Split('.')[]; var table = ExcelHelper.ExcelRead("temp", "Sheet1", preStr + fileName, out uploadPath);
if (table == null)
{
return "{\"error\":\"模版格式不正确!\",\"msg\":\"gzz\"}";
}
if (table.Rows.Count == )
{
return "{\"error\":\"此模版数据为空!\",\"msg\":\"gzz\"}";
}
if (table.Columns.Count != )
{
return "{\"error\":\"模版格式不正确!\",\"msg\":\"gzz\"}";
}
DataTable dataTable = GetTableSchema();
long countTime = SqlBulkCopyInsert(table, dataTable);
YFY.Web.App_Code.JLCommonBind.InsertActionLog(Session["master_name"].ToString(), "老师信息导入", "导入数据!合计" + (table.Rows.Count - count) + "条!");
if (!string.IsNullOrEmpty(schoolName))
{
return "{\"error\":\"\",\"msg\":\"" + schoolName.TrimEnd(',') + "不存在!成功导入" + (table.Rows.Count - count) + "条数据!\"}";
} if (!string.IsNullOrEmpty(xueyuanName))
{
return "{\"error\":\"\",\"msg\":\"" + xueyuanName.TrimEnd(',') + "不存在!成功导入" + (table.Rows.Count - count) + "条数据!\"}";
} return "{\"error\":\"\",\"msg\":\"成功导入" + (table.Rows.Count - count) + "条数据!\"}";
} return "{\"error\":\"\",\"msg\":\"数据导入失败!\"}";
}
/// <summary>
/// 使用SqlBulkCopy方式插入数据
/// </summary>
/// <param name="dt">源数据</param>
/// <param name="dataTable">目标table</param>
/// <returns></returns>
private long SqlBulkCopyInsert(DataTable dt, DataTable dataTable)
{
Commens.Commens comm = new YFY.Commens.Commens(); string schoolId,xueyuanId,classId,zhuanyeId = "";
foreach (DataRow item in dt.Rows)
{
DataRow dataRow = dataTable.NewRow(); dataRow["StudentName"] = item["学生姓名"].ToString().Trim(); schoolId = WDCBS_Common.GetSchoolId(item["学校名称"].ToString().Trim(), );
xueyuanId = WDCBS_Common.GetSchoolId(item["院系"].ToString().Trim(), );
classId = WDCBS_Common.GetSchoolId(item["班级"].ToString().Trim(), );
zhuanyeId = WDCBS_Common.GetZhuanYeId(item["专业"].ToString().Trim()); if (schoolId != "")//根据学校名称判断学校是否存在
{
dataRow["SchoolID"] = schoolId;
}
else
{
schoolName += item["学校名称"].ToString().Trim() + ",";
count++;
continue; } if (xueyuanId != "")//根据学院名称判断学院是否存在
{
dataRow["XueYuanID"] = xueyuanId;
}
else
{
schoolName += item["院系"].ToString().Trim() + ",";
count++;
continue; } if (zhuanyeId != "")//根据学院名称判断学院是否存在
{
dataRow["ZhuanYeID"] = zhuanyeId;
}
else
{
var bll = new BLLDao.JL_UnlimitCategory();
var model = new ModelDao.JL_UnlimitCategory();
model.CodeName = item["专业"].ToString().Trim();
model.CodePid = ;
model.CodeFlag = "";
int e_id = bll.Add(model);
dataRow["ZhuanYeID"] = e_id;
bll.MenuDropList("", "", "JL_UnlimitCategory", "CodeCode", "CodeId", e_id); } if (classId != "")//根据学院名称判断学院是否存在
{
dataRow["ClassID"] = classId;
}
else
{
var bll = new WDCBS_SchoolMessage();
var model = new Model.WDCBS_SchoolMessage();
model.TopId =schoolId;
model.UpId = xueyuanId;
model.Type = "";
model.ShowIf = "";
model.PingCeIf = "";
model.AddTime = DateTime.Now;
model.Name = item["班级"].ToString().Trim();
dataRow["ClassID"] = bll.Add(model);
} dataRow["Sex"] = item["性别"].ToString().Trim();
dataRow["Paymoney"] = item["支付额度"].ToString().Trim();
if (item["是否支付"].ToString().Trim()=="是")
{
dataRow["PayMoneyIf"] = "";
}
else
{
dataRow["PayMoneyIf"] = "";
}
if (WDCBS_Common.GetStudentIsExist(item["身份证号码"].ToString().Trim())) {
dataRow["IDCard"] = item["身份证号码"].ToString().Trim();
}
else
{
count++;
continue;
}
dataRow["Password"] = comm.MD5(""); //密码
dataRow["BiYeIf"] =;
dataRow["Role"] = ConfigurationManager.AppSettings["StudengRole"].ToString();
dataRow["LoginIf"] = ""; dataTable.Rows.Add(dataRow);
} Stopwatch stopwatch = new Stopwatch();
stopwatch.Start(); string connectionString = Maticsoft.DBUtility.PubConstant.ConnectionString;
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connectionString);
sqlBulkCopy.DestinationTableName = "WDCBS_Student"; sqlBulkCopy.BatchSize = dataTable.Rows.Count;
SqlConnection sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
if (dataTable != null && dataTable.Rows.Count != )
{
try
{
sqlBulkCopy.WriteToServer(dataTable);
}
catch (Exception ex)
{
YFY.Web.App_Code.JLCommonBind.InsertActionLog("", "学生信息导入", ex.ToString());
} }
sqlBulkCopy.Close();
sqlConnection.Close();
stopwatch.Stop(); return stopwatch.ElapsedMilliseconds; //return dataTable.Rows.Count;
} #region
private static DataTable GetTableSchema()
{
DataTable dataTable = new DataTable(); dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("StudentID") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("StudentNo") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("StudentName") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Sex") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("SchoolID") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("XueYuanID") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("ClassID") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("ZhuanYeID") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("StudentProvince") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("StudentCity") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("StudentAdress") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("FamilyPersonName") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("FamilyPersonRelation") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("FamilyPersonTelephone") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("BaoXianIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Mail") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("IDCard") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Telephone") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("QQ") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Password") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Studenttype") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("BanZhuRenTeacher") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("SchoolZhiDaoTeacher") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("EnterpriseZhiDaoTeacher") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("BiYeSheJiTeacher") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("JiuYeZhiDaoTeacher") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("XueJie") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("BiYeIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("BiYeTime") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Statue") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("PingCeTeacherIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("PingCeEnterpriseIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("TeacherPingCeIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("EnterprisePingCeIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("JiaoWuPingCeIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Attachment") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Remark") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Role") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("Paymoney") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("PayMoneyIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("HavePaymoney") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("RegistTag") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("RegistTagIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("LoginIf") });
dataTable.Columns.AddRange(new DataColumn[] { new DataColumn("DeleteIf") }); return dataTable;
}
#endregion
/// <summary>

Excel大批量导入数据到SQLServer数据库-万条只用1秒的更多相关文章

  1. C#实现从EXCEL文件读取数据到SqlServer数据库

    用第三方组件:NPOI组件实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...

  2. 使用SqlBulkCopy批量插入数据,测试20万条用时5秒

    using System;using System.Collections.Generic;using System.Linq;using System.Text; using System.Data ...

  3. 解决将Excel表导入到SQL Server数据库时出现Text was truncated or one or more characters had no match in the target code错误

    编写python爬虫程序可以在电商.旅游等网站上爬取相关评论数据,这些数据可以用于词云制作.感情词分析.提取关键词等,也可以将爬取下来的数据以自己的方式进行展示.评论数据爬取下来后,就要考虑怎样入库, ...

  4. 批量导入数据到mssql数据库的

    概述 批量导入数据到数据库中,我们有好几种方式. 从一个数据表里生成数据脚本,到另一个数据库里执行脚本 从EXCEL里导入数据 上面两种方式,导入的数据都会生成大量的日志.如果批量导入5W条数据到数据 ...

  5. revit导出模型数据到sqlserver数据库

    revit软件可以导出模型数据到sqlserver数据库,有时候,为了对模型做数据分析,需要导出模型的数据,下面总结一下导出过程: 首先在sqlserver中建立一个数据库,如:revit_wujin ...

  6. postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库

    最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...

  7. PHP Excel文件导入数据到数据库

    1.php部分(本例thinkphp5.1): 下载PHPExcel了扩展http://phpexcel.codeplex.com/ <?phpnamespace app\admin\contr ...

  8. excel导入数据到sqlserver

    1.读取excel数据到dataset public static System.Data.DataSet ExcelSqlConnection(string filepath, string tab ...

  9. asp.net 从Excel表导入数据到数据库中

    http://www.cnblogs.com/hfzsjz/archive/2010/12/31/1922901.html http://hi.baidu.com/ctguyg/item/ebc857 ...

随机推荐

  1. 安卓log4k问题解决

    1.直接上代码 //log4k问题 public static void log(String tag, String str) { int index = 0; // 当前位置 int max = ...

  2. Gdb调试多进程程序

    Gdb调试多进程程序 程序经常使用fork/exec创建多进程程序.多进程程序有自己独立的地址空间,这是多进程调试首要注意的地方.Gdb功能强大,对调试多线程提供很多支持. 方法1:调试多进程最土的办 ...

  3. 5Hibernate配置及使用方法----青软S2SH(笔记)

    关于hibernate的简单配置,先看结构图,我们需要 1.还要弄一下需要的 jar包. 2.配置两个文件(hibernate配置文件和映射文件),不过映射文件可以用注解替代. 3.写一个pojo类, ...

  4. [Nhibernate]一级缓存

    目录 写在前面 文档与系列文章 一级缓存 一个例子 一级缓存管理 总结 写在前面 上篇文章介绍了nhibernate中对象的三种状态,通过对象的三种状态,很容易想到缓存. 什麽是缓存? 有时候,某些数 ...

  5. 关于学习JavaScript 的 高三编程 一些心得(二)

    今天在看高三的过程中,解决了之前我在 面试过程中遇到的一个问题. 就是将一段英文 颠倒过来. 下面就是我的代码: var zhang = "my name is zhangge !" ...

  6. JavaScript类型判断instanceof与typeof对比

    经常有人会在JavaScript里写如下的方法: function checkType() { var s1 = 123; var s2 = "OK"; if (s1 instan ...

  7. Thrift的TCompactProtocol紧凑型二进制协议分析

    Thrift的紧凑型传输协议分析: 用一张图说明一下Thrift的TCompactProtocol中各个数据类型是怎么表示的. 报文格式编码: bool类型: 一个字节. 如果bool型的字段是结构体 ...

  8. 利用边框border的属性做小符号

    前两天学习中,发现网站上的一个小符号,以为是插入的img,但找来找去也未发现img的地址.最后问了同学,才得知是用border属性做出来的. 符号如右:  其css代码如下: .fuhao { pos ...

  9. log4net部分配置说明

    第一步: 添加并应用Log4net.dll.然后在Web.config文件中添加下面的配置局 <configSections>     <section name="log ...

  10. iOS开发——高级篇——远程音频、视频播放

    一.远程音频播放(<AVFoundation/AVFoundation.h>) #import <AVFoundation/AVFoundation.h> /** 播放器 */ ...