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 = 0; 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();
            }
        }

原文地址:https://www.cnblogs.com/CityOfThousandFires/p/12528026.html

时间: 2024-10-21 02:45:06

SqlLite用SQLiteTransaction快速导入数据的相关文章

(4.10) 快速导入数据

SQL Server快速导入数据分享 Posted in Other and tagged Database, 数据库, MSSQL, SQL Server, 导入数据, 分享on Apr 26, 2014. Viewd 61 times. 目录 目录 1.CTE 2.OpenRowSet/OpenDataSource 3.BULK INSERT 4.bcp 5.Shell 文/温国兵 SQL Server快速导入数据,可以尝试的方法如下:CTE.OpenRowSet/OpenDataSourc

HBase快速导入数据--BulkLoad

Apache HBase是一个分布式的.面向列的开源数据库,它可以让我们随机的.实时的访问大数据.但是怎样有效的将数据导入到HBase呢?HBase有多种导入数据的方法,最直接的方法就是在MapReduce作业中使用TableOutputFormat作为输出,或者使用标准的客户端API,但是这些都不非常有效的方法. Bulkload利用MapReduce作业输出HBase内部数据格式的表数据,然后将生成的StoreFiles直接导入到集群中.与使用HBase API相比,使用Bulkload导入

Mysql中快速导入数据

公司要求为产品做一个离线升级工具,代理商可以下载后直接双击这个exe对当前版本进行升级.工具的其中一个功能是升级前备份用户的数据,升级失败还原数据.之前代码中一直使用的是mysqldump.exe来备份,对小数据量的情况还是稳定的, "..\mysqldump.exe" string.Format(" -h{0} -P{1} -u{2} -p{3} -q -R {4} > {5}" , conn.Server, conn.Port, conn.UserID,

MySQL InnoDB 快速导入数据

今天把需要分析的数据导入到数据库中. 数据将近7000万条,在txt文件中存放,共5.75G.采用Load data infile 导入,最后花了18个小时导入.主要做了以下修改: 1. MySQL优化 key_buffer_size = 64M max_allowed_packet = 8M innodb_buffer_pool_size = 1024M innodb_flush_log_at_trx_commit = 0 innodb_support_xa = 0 2. MySQL设置 戳我

MySQL 之 LOAD DATA INFILE 快速导入数据

SELECT INTO OUTFILE > help select; Name: 'SELECT' Description: Syntax: SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [MAX_STATEMENT_TIME = N] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE]

mysql数据向Redis快速导入

mysql数据向Redis快速导入 Redis协议 *<args><cr><lf> 参数个数 $<len><cr><lf> 第一个参数长度 <arg0><cr><lf> 第一个参数 $<len><cr><lf> 第一个参数长度 <arg1><cr><lf> 第二个参数 ... ... 编写SQL语句,把mysql数据组合成Red

HBase数据快速导入之ImportTsv&amp;Bulkload

导入数据最快的方式,可以略过WAL直接生产底层HFile文件 (环境:centos6.5.Hadoop2.6.0.HBase0.98.9) 1.SHELL方式 1.1 ImportTsv直接导入 命令:bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv Usage: importtsv -Dimporttsv.columns=a,b,c <tablename> <inputdir> 测试: 1.1.1在HBase中创建好表 c

尝试OUTFIle、INFILE快速导入导出数据

尝试OUTFIle.INFILE快速导入导出数据 应用场景: 前几天开发突然有这么一个需求,想导一份200多G的mysql数据出来到另一台机器上,而且时间有点赶,第一时间就想要使用Xtrabackup来全备与增备.但想到之前使用Xtrabackup来备份恢复的时候出现了各种坑,就问了下同事有什么好建议来快速导出导入数据,后来知道了可以使用select into outfile导出表数据,就冒着尝试一下的心里去弄了一下,得到的结果是惊人的,个人感觉速度要比Xtrabackup快很多. 使用sele

干货 | 快速实现数据导入及简单DCS的实现

干货 | 快速实现数据导入及简单DCS的实现 原创:?赵琦?京东云开发者社区??4月18日 对于多数用户而言,在利用云计算的大数据服务时首先要面临的一个问题就是如何将已有存量数据快捷的导入到大数据仓库中.本文将演示如何基于京东云数据计算服务平台,简单.快速地将数据导入数据计算服务. 我们通常说的大数据平台主要包括三部分:数据相关的产品和技术.数据资产.数据管理.京东云数据计算服务(Data Computing Service,简称:DCS)是一个全托管.低使用成本的云上数据仓库服务.通过数据工厂