基于ASP.NET几十万数据几秒钟就可以导入到数据库中
/// <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几十万数据几秒钟就可以导入到数据库中的更多相关文章
- Bulk Insert:将文本数据(csv和txt)导入到数据库中
将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INS ...
- c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中
今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走 ...
- 微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据
开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使 ...
- excel数据通过构建sql语句导入到数据库中
拿到一张excel数据表格,数据格式如下图所示: 2.根据excel数据结果,构建保存excel数据的表结构 CREATE TABLE #tmpExcel(IP VARCHAR(100),IPAddr ...
- Java版将EXCEL表数据导入到数据库中
1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls ...
- 利用DataSet更改数据,将更改保存到数据库中
RowState 是 DataRow 很重要的一个属性, 表示 DataRow 当前的状态. RowState 有 Added, Modified, Unchanged, Deleted, Detac ...
- sqlserver怎么将excel表的数据导入到数据库中
在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据. ...
- java实现EXCEL数据导入到数据库中的格式问题的解决
之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...
- 解析excel文件并将数据导入到数据库中
今天领导给安排了一个临时工作,让我将一个excel里面的数据解析后放入数据库中,经过一个下午的努力成功完成,现在将代码献上,希望对大家有所帮助 一.需要导入的jar 1.commons-collect ...
随机推荐
- TMapCoordinate
MapPiter.Location := TMapCoordinate.Create(59.965, 30.35); MapPiter.Zoom := 10;
- C++Builder 代码编辑器 回车自动补充括弧
两大问题 括弧和折叠 一.括弧 XE7,回车,自动补充括弧} 好用,有时候不准确,代码量多,不知道什么原因就引起错误,总是多一个括弧,一回车就加一个括弧,都不敢回车写代码了,怎么关闭此选项? 找到了, ...
- LUA 运行期间不独占线程的递归,通过回调实现
function main(d) local function func(d) moveto(d, function() print("d=======", d) d = d - ...
- Windows安装MySQL教程
一.下载MySQL MySQL官网首页 --> Download --> Community --> 选择“ MySQL Community Server” 即:MySQL下载连接 ...
- 介绍MVC编程架构模式
MVC(Model/View/Controller)模式是国外用得比较多的一种框架模式,最早是在Smaltalk中出现.MVC包括三类对象. Model——是应用对象 View——是它在屏幕上的表示 ...
- 寄存器CPU存储地址信息和数据信息的地方 CPU通过地址寄存器区分指令和数据
- Python打包工具
打包Python应用,使用工具: 1.Linux和Windows下,使用pyinstaller pyinstaller -F -w XXX.py 在当前文件夹下生成两个文件夹:build .dist ...
- 使用寄存器点亮LED等
最基本的输入功能是检测外部输入电平,如把 GPIO引脚连接到按键,通过电平高低区分按键是否被按下. 基本结构分析 2. P-MOS管和 N-MOS管 main.c中的main函数
- python 命令行工具 fire
简介 A library for automatically generating command line interfaces. Python Fire is a library for auto ...
- CI框架入门教程
1. URL常用的相关函数 url相关函数在辅助类url中第一,要使用它们必须先加载$this->load->helper('url')或者自动装载 site_url('控制器/方法 ...