首页 > 代码库 > 自学.net(5)SqlBulkCopy批量数据插入
自学.net(5)SqlBulkCopy批量数据插入
插个1万条的数据用了40多秒,我感觉我这个代码还是有问题
using Microsoft.Win32;using System;using System.Collections;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace 导入数据优化{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btnImport_Click(object sender, RoutedEventArgs e) { string connStr = ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString; OpenFileDialog ofg = new OpenFileDialog(); ofg.Filter = "文本|*.txt"; if (ofg.ShowDialog() == false) { return; } IEnumerable<string> lines = File.ReadLines(ofg.FileName, Encoding.Default); DateTime startTime=DateTime.Now; DataTable table = new DataTable(); table.Columns.Add("haoduan"); table.Columns.Add("diqu"); table.Columns.Add("leixing"); table.Columns.Add("quhao"); for (int i = 1; i < lines.Count(); i++) { string line = lines.ElementAt(i); string[] str = line.Split(‘\t‘); string haoduan = str[0]; string diqu = str[1]; diqu.Trim(‘"‘); string leixing = str[2]; leixing.Trim(‘"‘); string quhao = str[3]; quhao.Trim(‘"‘); DataRow row=table.NewRow(); row["Haoduan"] = haoduan; row["Diqu"] = diqu; row["Leixing"] = leixing; row["Quhao"] = quhao; table.Rows.Add(row); } using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connStr)) { bulkCopy.DestinationTableName = "T_Tel"; bulkCopy.ColumnMappings.Add("haoduan", "haoduan"); bulkCopy.ColumnMappings.Add("diqu", "diqu"); bulkCopy.ColumnMappings.Add("leixing", "leixing"); bulkCopy.ColumnMappings.Add("quhao", "quhao"); bulkCopy.WriteToServer(table); } TimeSpan ts = DateTime.Now - startTime; MessageBox.Show(ts.ToString());// using (SqlConnection conn = new SqlConnection(connStr))// { // conn.Open(); // for (int i = 1; i < lines.Count(); i++)// {// string line = lines.ElementAt(i);// string[] str = line.Split(‘\t‘);// string haoduan = str[0];// string diqu = str[1];// diqu.Trim(‘"‘);// string leixing = str[2];// leixing.Trim(‘"‘);// string quhao = str[3];// quhao.Trim(‘"‘);// using (SqlCommand cmd = conn.CreateCommand())// {// cmd.CommandText = @"insert into T_Tel(haoduan,diqu,leixing,quhao)// values (@Haoduan,@Diqu,@Leixing,@Quhao)";// cmd.Parameters.Add(new SqlParameter("@Haoduan", haoduan));// cmd.Parameters.Add(new SqlParameter("@Diqu", diqu));// cmd.Parameters.Add(new SqlParameter("@Leixing", leixing));// cmd.Parameters.Add(new SqlParameter("@Quhao", quhao));// cmd.ExecuteNonQuery();// }// } // } } }}
自学.net(5)SqlBulkCopy批量数据插入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。