zoukankan      html  css  js  c++  java
  • SqlBulkCope数据的批量插入(14)

    第一步创建一个名为“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());
        }
  • 相关阅读:
    poj 3280 Cheapest Palindrome(区间DP)
    POJ 2392 Space Elevator(多重背包)
    HDU 1285 定比赛名次(拓扑排序)
    HDU 2680 Choose the best route(最短路)
    hdu 2899 Strange fuction (三分)
    HDU 4540 威威猫系列故事――打地鼠(DP)
    HDU 3485 Count 101(递推)
    POJ 1315 Don't Get Rooked(dfs)
    脱离eclipse,手动写一个servlet
    解析xml,几种方式
  • 原文地址:https://www.cnblogs.com/qiushuixizhao/p/3114251.html
Copyright © 2011-2022 走看看