第一步创建一个名为“SqlBulkCope”的窗体,然后拖一个按钮名为btnSqlBulkCope,并且为其添加Click事件,代码如下:
private void btnImport_Click(object sender, RoutedEventArgs e) { string connStr = ConfigurationManager.ConnectionStrings["dbLoginConnStr"].ConnectionString; OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "文本文件|*.txt"; if (ofd.ShowDialog() == false) { return; } string[] lines = File.ReadLines(ofd.FileName, Encoding.Default).ToArray(); DateTime startTime = DateTime.Now; DataTable table = new DataTable(); table.Columns.Add("StartTelNum"); table.Columns.Add("TelArea"); table.Columns.Add("TelType"); table.Columns.Add("TelZone"); for (int i = 1; i < lines.Count(); i++) { string line = lines[i]; string[] strs = line.Split('\t');//‘\t’为制表符 string startTelNum = strs[0]; string telArea = strs[1]; telArea = telArea.Trim('"');//去掉两边的双引号:"北京市" string telType = strs[2]; telType = telType.Trim('"');//去掉两边的双引号:"联通" string telZone = strs[3]; telZone = telZone.Trim('"');//去掉两边的双引号:"010" DataRow row =table.NewRow();//创建一个DataRow对象 row["StartTelNum"]=startTelNum;//一定要在一开始创建table.Columns添加列 row["TelArea"]=telArea; row["TelType"]=telType; row["TelZone"] = telZone; table.Rows.Add(row);//NewRow只是创建,没有插入 } using (SqlBulkCopy bulkCope = new SqlBulkCopy(connStr)) { bulkCope.DestinationTableName="T_TelNum"; //添加dataTable中列名与数据库表中列名的映射 bulkCope.ColumnMappings.Add("StartTelNum","StartTelNum"); bulkCope.ColumnMappings.Add("TelArea","TelArea"); bulkCope.ColumnMappings.Add("TelType","TelType");//dataTable中与数据库表的对应关系(datatable中的名字,数据库中的名字) bulkCope.ColumnMappings.Add("TelZone", "TelZone"); bulkCope.WriteToServer(table); } TimeSpan ts = DateTime.Now - startTime;//DateTime得到TimeSpan类型 MessageBox.Show(ts.ToString()); }