/// <summary>
/// 一、构建模拟数据存放于DataTable
/// </summary>
/// <returns>DataTable</returns>
public DataTable GetData()
{
DataTable dt = new DataTable(); dt.Columns.Add("MemberID", typeof(int));//为新的Datatable添加一个新的列名
dt.Columns.Add("Body", typeof(string));//为新的Datatable添加一个新的列名
dt.Columns.Add("IsSecret", typeof(int));//为新的Datatable添加一个新的列名
dt.Columns.Add("AdminReply", typeof(string));//为新的Datatable添加一个新的列名
dt.Columns.Add("AdminReplyTime", typeof(DateTime));
dt.Columns.Add("CreateTime", typeof(DateTime)); for (int i = ; i < ; i++) //开始循环赋值
{
DataRow row = dt.NewRow(); //创建一个行
row["MemberID"] = ; //从总的Datatable中读取行数据赋值给新的Datatable
row["Body"] = "留言了:" + (i + ).ToString();
row["IsSecret"] = ;
row["AdminReply"] = "回复了:" + (i + ).ToString();
row["AdminReplyTime"] = DateTime.Now;
row["CreateTime"] = DateTime.Now.AddMonths(-);
dt.Rows.Add(row);//添加次行
}
return dt;
}
/// <summary>
/// 二、实例的数据源中的列与该实例的目标表中的列之间的映射
/// </summary>
/// <returns></returns>
public SqlBulkCopyColumnMapping[] GetMapping()
{
SqlBulkCopyColumnMapping[] mapping = new SqlBulkCopyColumnMapping[];
mapping[] = new SqlBulkCopyColumnMapping("MemberID", "MemberID");
mapping[] = new SqlBulkCopyColumnMapping("Body", "Body");
mapping[] = new SqlBulkCopyColumnMapping("IsSecret", "IsSecret");
mapping[] = new SqlBulkCopyColumnMapping("AdminReply", "AdminReply");
mapping[] = new SqlBulkCopyColumnMapping("AdminReplyTime", "AdminReplyTime");
mapping[] = new SqlBulkCopyColumnMapping("CreateTime", "CreateTime");
return mapping;
} /// <summary>
/// DataTable批量添加(有事务)
/// </summary>
/// <param name="Table">数据源DataTable</param>
/// <param name="DestinationTableName">目标表即需要插入数据的数据表名称如"Message"</param>
public bool MySqlBulkCopy(DataTable Table, string DestinationTableName)
{
bool Bool = true;
using (SqlConnection con = new SqlConnection(DbHelperSQL.connectionString))
{
con.Open();
using (SqlTransaction Tran = con.BeginTransaction())//应用事物
{
using (SqlBulkCopy Copy = new SqlBulkCopy(con, SqlBulkCopyOptions.KeepIdentity, Tran))
{
Copy.DestinationTableName = DestinationTableName;//指定目标表
SqlBulkCopyColumnMapping[] Mapping = GetMapping();//获取映射关系
if (Mapping != null)
{
//如果有数据
foreach (SqlBulkCopyColumnMapping Map in Mapping)
{
Copy.ColumnMappings.Add(Map);
}
}
try
{
Copy.WriteToServer(Table);//批量添加
Tran.Commit();//提交事务
}
catch
{
Tran.Rollback();//回滚事务
Bool = false;
}
}
}
}
return Bool;
} public ActionResult InsertMoreData()
{
MySqlBulkCopy(GetData(), "Message");
return RedirectToAction("Index");
}

基于ASP.NET几十万数据几秒钟就可以导入到数据库中的更多相关文章

  1. Bulk Insert:将文本数据(csv和txt)导入到数据库中

    将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INS ...

  2. c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中

    今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走 ...

  3. 微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据

    开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使 ...

  4. excel数据通过构建sql语句导入到数据库中

    拿到一张excel数据表格,数据格式如下图所示: 2.根据excel数据结果,构建保存excel数据的表结构 CREATE TABLE #tmpExcel(IP VARCHAR(100),IPAddr ...

  5. Java版将EXCEL表数据导入到数据库中

    1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls ...

  6. 利用DataSet更改数据,将更改保存到数据库中

    RowState 是 DataRow 很重要的一个属性, 表示 DataRow 当前的状态. RowState 有 Added, Modified, Unchanged, Deleted, Detac ...

  7. sqlserver怎么将excel表的数据导入到数据库中

    在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据. ...

  8. java实现EXCEL数据导入到数据库中的格式问题的解决

    之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...

  9. 解析excel文件并将数据导入到数据库中

    今天领导给安排了一个临时工作,让我将一个excel里面的数据解析后放入数据库中,经过一个下午的努力成功完成,现在将代码献上,希望对大家有所帮助 一.需要导入的jar 1.commons-collect ...

随机推荐

  1. python实现进度条--主要用在上传下载文件

    在python中进行socket上传文件的时候使用进度条,然后在网上找了好久,找寻相关的进度的条的使用,看了几个,发现总是无法进行调用,主要原因是在进行上传文件的时候,每次传送的数据量是固定的,数据的 ...

  2. How to Integrate JCaptcha in Spring Security

    The repository for JCaptcha is this one: <repository> <id>sourceforge-releases</id> ...

  3. LevelDB Log文件

    [LevelDB Log文件] log文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据.因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Me ...

  4. [C++] STL相关面试题

    (1) 为何map和set的插入删除效率比用其他序列容器高? 因为map和set的内部数据结构是红黑树,它的插入和删除不需做内存的拷贝和移动.(红黑树的插入和删除是log(n)的). (2) 为何每次 ...

  5. PHP - MongoDB连接攻略

    http://blog.163.com/lgh_2002/blog/static/44017526201261111044608/ 使用PHP的Mongo扩展连接MongoDB.通过new Mongo ...

  6. Intellij Idea notes

    1. 解决intellij idea国际化配置文件resource bundle中文乱码问题 https://blog.csdn.net/u012453843/article/details/7531 ...

  7. JAVA定时关机小程序

    大一刚学java时候做的小程序.由于当时迅雷还没有下载完成关机,晚上要下很多学习资料.只有自己算时间然后通过shutdown命令设置时间关机. 当时通过shutwodn命令,想到能否通过java做一个 ...

  8. ubuntu12.04安装nox-classic

    Setup Nox repo for ‘nox-dependencies’ package $ cd /etc/apt/sources.list.d/ $ wget http://openfl ...

  9. Kali linux切换语言为中文

    echo LANG="zh_CN.UTF-8" > /etc/default/locale

  10. swift学习之UITabelView ----UITableViewCell

    // //  OneViewController.swift //  tab // //  Created by su on 15/12/7. //  Copyright © 2015年 tian. ...