SqlLite用SQLiteTransaction快速导入数据
mysql与sql server都有整表导入的类库,但是查遍了资料发现sqlLite没有,除非自己去写个,发现用SQLiteTransaction导入数据也很快,附上代码
/// <summary>
/// 导入major表数据
/// </summary>
/// <param name="con"></param>
/// <param name="dt"></param>
public static void InsertMajor(string con, DataTable dt)
{
try
{
SQLiteConnection connection = new SQLiteConnection("data source=" + con);
connection.Open();
SQLiteCommand command = connection.CreateCommand();
SQLiteTransaction transaction = connection.BeginTransaction(); #region Sql语句
command.CommandText = "INSERT OR IGNORE INTO major " +
"(id," +
"year," +
"major," +
"inter_code," +
"edu_department," +
"report_school ," +
"subject," +
"prm_level ," +
"city," +
"type," +
"level," +
"prm_major," +
"prm_type," +
"major_new)" + "VALUES" +
"(" + "@id," +
"@year," +
"@major," +
"@inter_code," +
"@edu_department," +
"@report_school ," +
"@subject," +
"@prm_level," +
"@city," +
"@type," +
"@level," +
"@prm_major," +
"@prm_type," +
"@major_new)"; #endregion #region
command.Parameters.AddWithValue("@id", "");
command.Parameters.AddWithValue("@year", "");
command.Parameters.AddWithValue("@major", "");
command.Parameters.AddWithValue("@inter_code", "");
command.Parameters.AddWithValue("@edu_department", "");
command.Parameters.AddWithValue("@report_school", "");
command.Parameters.AddWithValue("@subject", "");
command.Parameters.AddWithValue("@prm_level", "");
command.Parameters.AddWithValue("@city", "");
command.Parameters.AddWithValue("@type", "");
command.Parameters.AddWithValue("@level", "");
command.Parameters.AddWithValue("@prm_major", "");
command.Parameters.AddWithValue("@prm_type", "");
command.Parameters.AddWithValue("@major_new", ""); #endregion
for (int i = ; i < dt.Rows.Count; i++)
{
command.Parameters["@id"].Value = dt.Rows[i]["id"].ToString();
command.Parameters["@year"].Value = dt.Rows[i]["year"].ToString();
command.Parameters["@major"].Value = dt.Rows[i]["major"].ToString();
command.Parameters["@inter_code"].Value = dt.Rows[i]["inter_code"].ToString();
command.Parameters["@edu_department"].Value = dt.Rows[i]["edu_department"].ToString();
command.Parameters["@report_school"].Value = dt.Rows[i]["report_school"].ToString();
command.Parameters["@subject"].Value = dt.Rows[i]["subject"].ToString();
command.Parameters["@prm_level"].Value = dt.Rows[i]["prm_level"].ToString();
command.Parameters["@city"].Value = dt.Rows[i]["city"].ToString();
command.Parameters["@type"].Value = dt.Rows[i]["type"].ToString();
command.Parameters["@level"].Value = dt.Rows[i]["level"].ToString();
command.Parameters["@prm_major"].Value = dt.Rows[i]["prm_major"].ToString();
command.Parameters["@prm_type"].Value = dt.Rows[i]["prm_type"].ToString();
command.Parameters["@major_new"].Value = dt.Rows[i]["major_new"].ToString();
command.ExecuteNonQuery();
} transaction.Commit();
command.Dispose();
connection.Dispose();
}
catch (Exception ex)
{
string str = ex.ToString();
}
}
SqlLite用SQLiteTransaction快速导入数据的更多相关文章
- 1118ALTER TABLE tabname DISCARD TABLESPACE快速导入数据利用表空间
-- 快速导入数据如果你有.ibd文件的一个干净的备份,你可以按如下操作从被起源的地方恢复它到MySQL安装中:相当快速 1. 发出这个ALTER TABLE语句: 2. ALTER TABLE tb ...
- Oracle快速导入数据工具
sqlldr是oracle自带的快速导入批量数据的工具,常用于性能测试.考虑手工构造控制文件较为繁琐,因此使用脚本完成批量数据的自动导入. 基本知识 sqlldr命令语法 sqlldr dbname/ ...
- MySQL 之 LOAD DATA INFILE 快速导入数据
SELECT INTO OUTFILE > help select; Name: 'SELECT' Description: Syntax: SELECT [ALL | DISTINCT | D ...
- redis-cli 通过管道 --pipe 快速导入数据到redis中
最近有个需求,需要把五千万条数据批量写入redis中,方法倒是有很多种!效率最高的就是通过redis-cl管道的方式写入 一:先看看命令 cat redis.txt | redis-cli -h 12 ...
- c# 采用datatable 快速导入数据至MSSQL的方法分享
转自:http://www.maomao365.com/?p=5613 摘要:下文讲述使用c#代码快速将dataTable导入至mssql数据库的方法 实现思路:需要将datatable调整为同目标表 ...
- MySQL InnoDB 快速导入数据
今天把需要分析的数据导入到数据库中. 数据将近7000万条,在txt文件中存放,共5.75G.采用Load data infile 导入,最后花了18个小时导入.主要做了以下修改: 1. MySQL优 ...
- [转]Greenplum 通过gpfdist + EXTERNAL TABLE 并行导入数据
摘要: Greenplum 提供了快速导入数据的方法,下面通过一个例子演示给大家. Greenplum 提供了快速导入数据的方法,下面通过一个例子演示给大家. 我们用TPCH测试中最大的表做导入测试 ...
- MySQL如何快速插入数据
前言: 日常学习和工作中,经常会遇到导数据的需求.比如数据迁移.数据恢复.新建从库等,这些操作可能都会涉及大量数据的导入.有时候导入进度慢,电脑风扇狂转真的很让人崩溃,其实有些小技巧是可以让导入更快速 ...
- MySQL 快速导入大量数据 资料收集
一.LOAD DATA INFILE http://dev.mysql.com/doc/refman/5.5/en/load-data.html 二. 当数据量较大时,如上百万甚至上千万记录时,向My ...
随机推荐
- 如何快速的找到好玩的旅游景点信息?Python爬虫帮你轻松解决
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 喜欢的朋友欢迎关注小编 当我们出去旅游时,会看这个地方有哪些旅游景点,景点 ...
- Python--字典(三级菜单)
# -*- coding:utf-8 -*- data = { "腾讯":{ "LOL":{ "上单":["诺手",&q ...
- shell编程(一):功能、执行、基础
1.shell的功能 (1)自动化批量初始化系统:对N台系统初始化(装系统时对系统的时区.yum源.软件包的更新.安全的设置进行初始化) (2)自动化批量部署软件程序:(LAMP/LNMP/Tomca ...
- 【Android】使用Appium+python控制真机,碰到的问题以及处理(持续更新)
问题: selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Ori ...
- C++ 网教通直播刷屏反制 (思路启发)
前言 那些手动刷屏的你们弱爆了! 直播间的讨论区是用来讨论的, 下次谁再在上课时间大量刷屏,就以暴制暴! 思路启发 #define VK_CTRL 0x11 //... keybd_event(VK_ ...
- asp.net Mvc 路由详解,非常详细.
关于路由的理解 为什么要定义路由?路由的定义在开发中的工作量非常小,但是非常重要,因为任何请求都离不开路由. 各个电商网站的 URL 使用非常灵活,都离不开路由的定义,请大家参考几家电商的 URL 如 ...
- python获取本地时间戳
import time print(time.time())#获当前时间的时间戳 print(time.localtime())#获取本地时间 print(time.strftime('%Y-%m-% ...
- 搭建redis哨兵模式
搭建redis哨兵模式,一主两从三哨兵 1.从官网下载redis安装包:此处是redis-5.0.7.tar.gz 2.上传到目录 /utxt/soft 3.解压 4.cd /utxt/soft/ ...
- [CentOS 7]挂载ntfs格式U盘
在我们将U盘插入装有CentOS的系统时,经常会出现如图所示的错误提示.这是因为linux系统并不能兼容NTFS的文件系统.其解决方法如下(建议先进入root模式): 1.首先下载"ntfs ...
- platform驱动架构初探
platform总线是Linux2.6引入的虚拟总线,这类总线没有对应的硬件结构.与之相反,USB总线和PCI总线在内核中是有对应的bus(USB-bus和PCI-bus)的.为了统一管理CPU这些既 ...