发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
以前插入大数据的时候都是一条一条的插入,由于电脑配置不行,有一次17万条数据用了半个小时才插入完成,那个蛋疼啊!
前面听杨中科老师的课,发现一个很好的东西,25万条数据配置好的电脑几秒钟就完成了,那是一个怎样神奇的代码呢?
我借花献佛下,呵呵 都是杨中科老师写的 拿出来晒晒 勿喷
数据表T_Nums中有四个字段:
NumSection,AddressStr,NumType,AreaCode
然后从文本文件中读取输入到一个DataTable中,然后将DataTable插入数据库即可 速度实在是太快了
运行截图:
由于代码比较简单,没有写注释,有不懂的看帮助文档或者留言 不喜勿喷...
以下是代码:
string connStr = "Data Source=WADE-PC;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=123456";DateTime startTime = DateTime.Now;OpenFileDialog dialog = new OpenFileDialog();dialog.Filter = "文本文件(*.txt)|*.txt";if (dialog.ShowDialog() == DialogResult.OK){DataTable dt = new DataTable();dt.Columns.Add("NumSection");dt.Columns.Add("AddressStr");dt.Columns.Add("NumType");dt.Columns.Add("AreaCode");
IEnumerable<string> lines = File.ReadLines(dialog.FileName, Encoding.Default);foreach (string str in lines){string[] strs = str.Split('\t');DataRow row = dt.NewRow();row["NumSection"] = strs[0];row["AddressStr"] = strs[1].ToString().Trim('"');row["NumType"] = strs[2].ToString().Trim('"');row["AreaCode"] = strs[3].ToString().Trim('"');dt.Rows.Add(row);}using (SqlBulkCopy bulkCopy=new SqlBulkCopy(connStr)){bulkCopy.DestinationTableName = "T_Nums";bulkCopy.ColumnMappings.Add("NumSection", "NumSection");bulkCopy.ColumnMappings.Add("AddressStr", "AddressStr");bulkCopy.ColumnMappings.Add("NumType", "NumType");bulkCopy.ColumnMappings.Add("AreaCode", "AreaCode");bulkCopy.WriteToServer(dt);}
TimeSpan ts = DateTime.Now.Subtract(startTime);MessageBox.Show("一共插入" + dt.Rows.Count + "条数据,用时:" + ts.ToString());
来自: 昵称10504424 > 《C#》
0条评论
发表
请遵守用户 评论公约
数据库批量处理 SqlBulkCopy 的使用
i++)//过滤掉第一行 { string line = lines[i]; string[] strs = line.Split(''\t''); string startTelNum = strs[0].Trim(''"''...
使用SqlBulkCopy进行数据大批量的迁移
使用SqlBulkCopy进行数据大批量的迁移在ASP.NET 2.0中提供了一个新的类SqlBulkCopy类,它在性能上的优势更超过了上面的方法,它可以通过让DataSet或是DataReader中大量的数据通过数据流直接进行装载,...
使用asp.net 2.0中的SqlBulkCopy类批量复制数据
><Products> <Product productID="1" productName="Chai" /> <Product productID="...
C#从文本文件中读取数据大批量导入数据库
批量添加数据
SQL 写入调优
SQL 写入调优。CREATE PROCEDURE sp_insert_jk_users @usersTable jk_users_bulk_insert READONLY ASINSERT INTO jk_users (user_login, user_pass, user_nicename, user_email, user_url, user_activa...
List使用add方法添加对象问题
List使用add方法添加对象问题List<String[]> list = new LinkedList<String[]>();String[] strs = new String[2];for(int i = 0; i <100; i ){strs[0] = ''''''...
Excel中出现的10万行没用的空白行怎么删除?
Excel中出现的10万行没用的空白行怎么删除?尝试一:保存关闭再打开,解决可能性25%.尝试二:选中最后一行,再拖动滚动条到数据区最后一行,按着shift点第一行空白行,删除,保存。解决可能性40%.尝试...
用js来实现导出数据到Excel
用js来实现导出数据到Excel.var oXL = new ActiveXObject("Excel.Application");//创建excel应用程序对象var oWB = oXL.Workbooks.Add(); //创建工作簿var oSheet = oWB.ActiveSheet;...
微信扫码,在手机上查看选中内容