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());
        }
  • 相关阅读:
    P3834 【模板】可持久化线段树 (静态主席树)
    P3834 【模板】可持久化线段树 (静态主席树)
    2019 南昌网络赛 I. Max answer
    Linux从入门到精通——系统的进程
    Linux从入门到精通——文件权限
    Linux从入门到精通——命令行使用技巧
    Linux从入门到精通——Linux系统的文件及其管理
    Linux从入门到精通——vim及管理输入输出
    Linux从入门到精通——用户管理
    thiny mission 2021 10 15
  • 原文地址:https://www.cnblogs.com/qiushuixizhao/p/3114251.html
Copyright © 2011-2022 走看看