| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1430 人关注过本帖, 2 人收藏
标题:如何用C#向Access中快速存储大量数据
只看楼主 加入收藏
lj_a_b
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2012-1-9
结帖率:66.67%
收藏(2)
 问题点数:0 回复次数:5 
如何用C#向Access中快速存储大量数据
如题,重点是【快速】。。。
我用的是C#的数据库事务,数据量大的时候Update时间太长了,哪位高手帮帮忙啊,感激不尽
搜索更多相关主题的帖子: 数据库 如何 
2013-09-27 11:09
sbadwaps
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2009-11-3
收藏
得分:0 
          //这是我一个上传大量数据到服务库数据库的代码,速度还可以,你改改应可以使用,要是存到本地速度应该更快
//先复制引用,一个一个删除,看是那一个才真正需要的引用
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.OleDb;



            OleDbConnection ca = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Application.StartupPath + "\\数据库\\数据\\数据库名称.mdb;Jet OLEDB:Engine Type=5");
            ca.Open();
            OleDbCommand Cmd = new OleDbCommand("select * from 表名称", ca);//这是一个操作对象,当前SQL语句为操作命令,也就是以这个命令操作上面连接通道的数据源
            OleDbDataReader Drr = Cmd.ExecuteReader();//通过方法ExecuteReader获取数据到SqlDataReader对象
            DataTable dt = new DataTable();//建立一个内存数据表
            dt.Load(Drr);  //加载数据到内存表
            //  上面是先生成一个dt表(准备上传的表)
            //下面进行上传
            string conname = "";
            SqlConnection conn = new SqlConnection(DataSou.Path);//DataSou.Path为连接数据库字符串
            conn.Open();
            using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))
            {
                sqlBC.BatchSize = 100000;//指示每10万条一个事务并提交
                sqlBC.BulkCopyTimeout = 60;//指示60秒按超时处理
                sqlBC.DestinationTableName = "要导入数据的表名称";//指示将数据导入SQL表名称
                for (int i = 1; i < dt.Columns.Count; i++)
                {
                    conname = dt.Columns[i].ColumnName;
                    sqlBC.ColumnMappings.Add(conname, conname);//字段与字段匹配
                }
                sqlBC.WriteToServer(dt);//写入数据库。其中dt是预先构建好的DataTable
            }
            ca.Close();
            conn.Close();
            MessageBox.Show("数据上传完成");  

[ 本帖最后由 sbadwaps 于 2013-10-18 21:39 编辑 ]
2013-10-18 21:33
dxggjc
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-10-23
收藏
得分:0 
厉害
2013-10-23 20:09
delta
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-10-24
收藏
得分:0 
学习一下。
2013-10-24 09:51
cooolcode
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-10-24
收藏
得分:0 
先复制引用,一个一个删除,看是那一个才真正需要的引用,真实高人
2013-10-24 20:13
hzm716
Rank: 1
等 级:新手上路
帖 子:6
专家分:9
注 册:2013-10-17
收藏
得分:0 
我是新人,多多学习
2013-10-26 11:20
快速回复:如何用C#向Access中快速存储大量数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045761 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved