传智播客--ADO.net--SqlBulkCopy批量插入数据(…
2018-06-18 03:04:24来源:未知 阅读 ()
一般情况下,我们在向数据库中插入数据时用Insert语句,但是当数据量很大的时候,这种情况就比较缓慢了,这个时候就需要SqlBulkCopy这个类。
SqlBulkCopy本身常用的函数有这么几个
DestinationTableName-----服务器目标表上的名称,也就是你要向哪个表插入大量的数据,这个就设置为那个表名
ColumnMappings-----字段映射,因为是要在本地建立一个Table,然后将整个Table一次性的加入到数据库中,因此需要将本地的Table的字段和数据库表中的字段做好映射关系
WriteToServer-----这个就是写入数据库了,不需要多说
导入的数据是传智播客免费视频上提供的手机号码归属地的信息,插入数据库看了一下,一共有258113条数据,用时大概6秒吧。
private void btnDR_Click(object sender, RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "文本文件|*.txt"; if(ofd.ShowDialog()!=true) { return; } DateTime time = DateTime.Now;//计时,看看花了多长时间 DataTable table = new DataTable();//本地创建一个临时表 //给临时表添加列名 table.Columns.Add("HD"); table.Columns.Add("DQ"); table.Columns.Add("LX"); using(StreamReader streamReader=new StreamReader(ofd.FileName,Encoding.Default))//读取文件 { while(!streamReader.EndOfStream) { string[] stringStream = streamReader.ReadLine().Split('\t');//按行读取,通过\t进行分割,得到数组 string HD = stringStream[0].Trim('"'); string DQ = stringStream[1].Trim('"'); string LX = stringStream[2].Trim('"'); //将数据插入到本地创建的临时表里 DataRow row = table.NewRow(); row["HD"] = HD; row["DQ"] = DQ; row["LX"] = LX; table.Rows.Add(row); } } //这部分就是从本地导入到数据库中 using(SqlConnection conn=new SqlConnection("Data Source=.;Initial Catalog=imageprocess;Integrated Security=True")) { conn.Open(); using(SqlBulkCopy bulkCopy=new SqlBulkCopy(conn)) { bulkCopy.DestinationTableName = "T_HM"; bulkCopy.ColumnMappings.Add("HD", "HD");//前面的参数是本地的临时Table列名,后面的参数是数据库的列名。两个名称不需要相同,我写相同,是为了方便 bulkCopy.ColumnMappings.Add("DQ", "DQ"); bulkCopy.ColumnMappings.Add("LX", "LX"); bulkCopy.WriteToServer(table); } } TimeSpan TS = DateTime.Now - time; MessageBox.Show(TS.ToString()); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:让PowerShell用上Git
下一篇:外观模式---设计模式(13)
- 多条件搜索问题 -sql拼接与参数化查询 2018-06-18
- 根据传智写的SqlHelper 2018-06-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash