1 private void btnImportFromWeb_Click(object sender, RoutedEventArgs e)
2 {
3 string connStr = "Data Source = 127.0.0.1; Initial Catalog = MyTest; User ID = sa;Password = 654321";
4 DateTime startTime = DateTime.Now;
5 OpenFileDialog dialog = new OpenFileDialog();
6 dialog.Filter = "文本文件(*.txt)|*.txt";
7 if (dialog.ShowDialog() == true)
8 {
9 //根据数据库中标列名,新建DataTable
10 DataTable dt = new DataTable();
11 dt.Columns.Add("NumSection");
12 dt.Columns.Add("AddressStr");
13 dt.Columns.Add("NumType");
14 dt.Columns.Add("AreaCode");
15 //IEnumerable<string> lines = File.ReadLines(dialog.FileName, Encoding.Default);
16 string[] lines = File.ReadLines(dialog.FileName, Encoding.Default).ToArray();
17 //foreach (string str in lines)
18 for (int i = 1; i < lines.Count(); i++)
19 {
20 //将文本数据逐行保存到dt里
21 string[] strs = lines[i].Split('\t');
22 DataRow row = dt.NewRow();
23 row["NumSection"] = strs[0];
24 row["AddressStr"] = strs[1].ToString().Trim('"');
25 row["NumType"] = strs[2].ToString().Trim('"');
26 row["AreaCode"] = strs[3].ToString().Trim('"');
27 dt.Rows.Add(row);
28 }
29 //使用sqlBulkCopy将dt存入数据库
30 using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connStr))
31 {
32 bulkCopy.DestinationTableName = "T_Nums";
33 //ColumnMappings.Add(数据源列名,数据表中目标列名)
34 bulkCopy.ColumnMappings.Add("NumSection", "NumSection");
35 bulkCopy.ColumnMappings.Add("AddressStr", "AddressStr");
36 bulkCopy.ColumnMappings.Add("NumType", "NumType");
37 bulkCopy.ColumnMappings.Add("AreaCode", "AreaCode");
38 bulkCopy.WriteToServer(dt);
39 }
40 TimeSpan ts = DateTime.Now.Subtract(startTime);
41 MessageBox.Show("一共插入" + dt.Rows.Count + "条数据,用时:" + ts.ToString());
42 }
43 }