C#关于Access大数据量的导入

C#造福大家
不管什么数据,只要沾上大数据,效率,快速,批量 都是一件很让人头疼的事情。
尤其是遇到了Access这种数据库。
这个没有什么好的办法,只好一条一条的写SQL插入了。
 
在这提供2种思路。第一种是写事物去处理。这点大家都懂的。第二种是用批量更新。
很奇怪这2种方法的处理速度都差不多。都比一条一条的插入块。那看你高兴了。
如果你有更快的方法,请不要忘记了我 lqqlike@163.com.
以下是2中代码
 
1.用事物处理
   用事物处理去循环比单独循环要快。别问为什么,因为是事物。
   以下是代码,伸手党速来。
   
    private void ExcuteListSQL(string tableName, List<List<SqlCondition>> conditionList)
        {
            string[] columns = conditionList[0].Select(t => t.ColumnName).ToList().ToArray();
            string insertSql = DB.GetInsertSQL(tableName, columns);
            insertSql = insertSql.Replace("?", "@");
            using (OleDbTransaction trans = conn.BeginTransaction())
            {
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = conn;
                cmd.Transaction = trans;
                try
                {
                    foreach (var one in conditionList)
                    {
                        cmd.CommandText = insertSql;
                        one.ForEach(t =>
                        {
                            cmd.Parameters.Add(new OleDbParameter("@" + t.ColumnName, t.Value));
                        });
                        cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                    }
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw ex;
                }
            }
        }

public class SqlCondition
{
       public string ColumnName { get; set; }
       public object Value { get; set; }
}

 

 
 
 
2.用OleDbDataAdapter.Update 批量更新
   以下是代码
 
 
 public void ExcuteTableSql(string tableName, DataTable dt)
        {
            List<string> columnList = new List<string>();
            foreach (DataColumn one in dt.Columns)
            {
                columnList.Add(one.ColumnName);
            }
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = new OleDbCommand("select * from " + tableName, conn);
            using (OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter))
            {
                adapter.InsertCommand = builder.GetInsertCommand();
                foreach (string one in columnList)
                {
                    adapter.InsertCommand.Parameters.Add(new OleDbParameter(one, dt.Columns[one].DataType));
                }
                adapter.Update(dt);
            }
        }

 

代码下载地址:http://download.csdn.net/detail/lqqlike/9371349

 
 
 

转载于:https://www.cnblogs.com/lqqlike/p/5065250.html

c# vs2010 连接access数据库 http://www.cnblogs.com/net064/p/5473886.html  vs2010中C#连接access数据库的配置以及操作代码 阅读详情

相关推荐

c#Access数据库中批量插入大量记录的方法

最近心情比较low,年纪大了,接触的开发工作越来越少,脑袋反应越来越慢,所以,开博客纪念吧 【背景】 最近有同事离职,我把他经手的项目接了过来,其中有一个功能,经过长时间运算以后,产生了17W条左右的记录,一次性保存到数据库中,每次界面要卡顿1分钟多,很是闹心,决定修改一下 【基本情况】 c#、nhibernate、Access数据库 【解决思路】 1、据说第一版本的实现,采用

naji1983的博客 1万+

C# Access 大数据量 批量 效率 快速 导入

C#写的大数据量批量快速效率高校的导入。 反正不是一条一条的插入 是一个dataset一个的插入 不管是C#还是JAVA 都用的上

C#Access数据库操作简易指南:增删改查及类封装

C#(发音为“看”),是由微软开发的一种面向对象的高级编程语言,它是在2000年随.NET框架一同发布的。作为.NET框架的主要编程语言,C#的设计旨在结合C++的强大性能和Visual Basic的易用性。C#语言从一开始发布,就因其现代性、类型安全以及对面向对象编程的全面支持而受到开发者的青睐。Microsoft Access 是一个由微软公司发布的轻量级关系数据库管理系统。它是Microsoft Office套件的一部分,主要设计用于桌面和小型企业应用程序。

weixin_42143092的博客 1268

C#大数据批量插入Access程序

C#编写,大数据量数据进行批量插入数据库Access的程序

技术图文:如何利用 C#Access 数据库插入大量数据?

背景 通常我们在做数据分析与处理之前,需要把从网站爬取的数据或者从 甲方 系统中导出的数据存入到自己的数据库中。如果数据量小,直接利用 SQL的 Insert 语句逐条插入就好。可是数据量上万条之后,再利用这样的方法就会奇慢无比,让人无法忍受。 最近在优化 台区线损排查分析软件 时遇到从集中器采集的上万条语句的入库,以及 继电保护可靠性评估与检修决策软件 中导入几万条 变电站一次设备的保护告警数据...

老马的程序人生 6336

c# mysql oledb_C# oledb 数据库操作类

public classoperateDB{private static stringconStr;public staticOleDbConnection cnn;OleDbDataAdapter da;OleDbCommandBuilder cb;OleDbCommand cmd;//构造函数#region initializepublicoperateDB(){////TODO: 在此处添加...

weixin_28797725的博客 612

C Access 大数据量批量导入解决方案

C# Access 大数据量批量导入解决方案 去发现同类优质开源项目:https://gitcode.com/ 在此仓库中,我们提供了一个专门针对C#环境下,进行大数据量批量导入Access数据库的解决方案。该方案经过优化,能够显著提高数据导入的效率,尤其适用于需要处理大量数据的应用场景。 特性 高效导入:摒弃了传统的一条一条插入数据的方式,采用dataset批量导入,大幅提升数据写入速度。 易...

gitblog_06750的博客 446

CAccess大数据量批量导入解决方案:提升数据库效率的利器

CAccess大数据量批量导入解决方案:提升数据库效率的利器 去发现同类优质开源项目:https://gitcode.com/ 在当今信息化时代,高效的数据处理成为企业竞争力的重要体现。对于C#环境下的大数据量批量导入Access数据库,一个高效、稳定的解决方案显得尤为重要。今天,我们就来详细介绍一下CAccess大数据量批量导入解决方案,帮助您轻松应对大规模数据导入的挑战。 项目介绍 CAcce...

gitblog_06707的博客 434

ACCESS大批量数据写入之性能提升方案

ACCESS数据库中批量写入大数据量时,最让人头疼的就是效率问题了。我一直也被这个问题困扰着。最近突然想起一个方案。利用ACCESS自身的导入功能,实现大数据的迅速导入功能。 整体方案是这样的:数据—>文本文件—>MDB 适用范围:大批量数据转换 下面是实现方案,请注意后面的注释。 第一、将数据写入到文本文件中。每一行一条记录,第一行是标题行。这里注意文...

weixin_33860737的博客 431

大数据量的插入C#的实现

大数据量的插入,C#的实现,使用了SqlBulkCopy,在做dataTable时,可以用更新部分写入一个dataTable,插入部分写入一个dataTable,然后把插入部分的dataTable用SqlBulkCopy写入到数据库中,更新部分写入更新程序到数据中.

DataTable导出Access、Excel数据

C#中将DataTable数据导出到Access数据库、Excel表,完整示例代码,包含必要的动态链接库

C# 做的一个将数据简单插入到access数据库中的demo。

C# 做的一个将数据简单插入到access数据库中的demo。可以在导入数据的时候使用的。

C#大文件大数据量导入sql数据库

最近,需要做个功能,从大文件【7百万+行】中导入数据到数据库。由于数据文件和DB不在同台服务器上,因此不太方便用BULK INSERT 这种超变态语句。怎么办呢,调用存储过程一条一条导 or 拼凑insert语句一次导入多条?前者肯定不现实的,后则经测试效果也极其不佳【每次导入2w条,大致需要45分钟+】。怎么办啊,my god?看看System.Data.SqlClient有没有什么超级变态的东...

javasogo 143

C#操作Access MDB文件避坑指南:连接ZKTeco考勤数据库的完整流程

本文详细介绍了使用C#操作ZKTeco考勤数据库(.mdb文件)的完整流程,包括环境配置、安全连接字符串构建、高效数据查询技巧及异常处理。特别针对ZKTeco考勤数据库的特殊结构和常见陷阱提供实战解决方案,帮助开发者高效处理考勤数据。

weixin_30363509的博客 805

C大数据批量插入Access程序:助你高效处理大数据

C#大数据批量插入Access程序:助你高效处理大数据 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当前信息时代,数据处理已成为许多开发者和企业面临的挑战之一。对于需要将大量数据导入Access数据库的开发者来说,一个稳定且高效的数据批量插入工具显得尤为重要。C#大数据批量插入Access程序正是为了解决这一问题而诞生,它基于C#语言开发,旨在实现高效的大数据量批...

gitblog_06790的博客 1124

C# 将数据批量插入accesss中

public static DataTable UpdateRows(string connectionString, string queryString, string tableName, DataSet ds) { using (OleDbConnection conn = new OleDbConnection(connectionString))

gxxloveszj的专栏 2188

c# 快速 将大量数据插入数据库

快速插入数据 主要思想是通过在客户端把数据都缓存在Table中,然后利用SqlBulkCopy一次性把Table中的数据插入到数据库 public static void BulkToDB(DataTable dt) { SqlConnection sqlConn = new SqlConnection( ...

weixin_30263073的博客 926
上一篇: 中断相关一【转】
下一篇: MonkeyImage API 实践全记录
weixin_33901641
博客等级 码龄11年 8741粉丝 710原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值