当前位置:编程学习 > C#/ASP.NET >>

百万级数据入库SqlBulkCopy高效处理代码

最犀利的一句就是writetoserver(tablename)。这个不解释啊,10000...记得是一百万条数据写入库中只要4秒多。。。要注意的就是待写入的数据集的字段格式要和数据库教程中的目的数据表的字段格式相同,说了半天就是表的框架和内容要完全一样,才可以写入。。。写入那叫一个快,一个哦~缺点是写入前的数据判断和过滤,逼近省事就意为着费功,下面来看代码。

1 /// <summary>
2 /// 利用sqlbulkcopy实现从excel到sql表的数据导入
3 /// </summary>
4 /// <param name="tablename">数据源</param>
5 /// <param name="destintable">目的表</param>
6 public void sqlbulkcopyinsert(datatable tablename, string destintable, sqlconnection conn, bool flag)
7 {
8 sqlbulkcopy sbc = new sqlbulkcopy(conn);
9
10 if (conn.state == connectionstate.closed)
11 {
12 conn.open();
13 }
14 sbc.destinationtablename = destintable; //获取要导入的目的数据表
15 try
16 {
17 sbc.writetoserver(tablename); //执行写入操作
18 }
19 catch (exception ex)
20 {
21 console.writeline(ex.message);
22 }
23 finally
24 {
25 sbc.close();
26 if (flag)
27 {
28 conn.close();
29 }
30 }
31 }

大量数据写入数据库操作的朋友对sqlbulkcopy都很熟悉,我也是碰巧在微软msdn文档上看到了这个方法。那会儿刚进公司,有一个运维的项目要做,因为考虑到是公司用,数据量一定不会小,如果用先if判断,完了insert into到数据库,一两百条的话还好,如果是上万条的话,那页面非超时不可,所以果断得来个给力的方法,写入数据库

补充:asp.net教程,.Net开发 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,