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());
    }

 

转载于:https://www.cnblogs.com/qiushuixizhao/archive/2013/06/02/3114251.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值