zoukankan      html  css  js  c++  java
  • 从文本中读入数据并插入到数据库,测试数据量为6百多万条.

                string path = @"D:\1.sql";
                StreamReader sr = File.OpenText(path);
                DataTable dt = new DataTable();
                dt.Columns.Add("UserName",typeof(string));
                dt.Columns.Add("UserPwd", typeof(string));
                dt.Columns.Add("Email", typeof(string));
                int i = 0;
                int j = 0;
                while (!sr.EndOfStream)
                {
                    string str = sr.ReadLine().Trim();
                    if(str == "")
                    {
                        continue;
                    }
                    string[] arr = StringHelper.SplitString(str, " # ");
                    try
                    {
                        if (arr.Length <= 1)
                            continue;
                        DataRow dr = dt.NewRow();
                        dr[0] = arr[0].Trim();
                        dr[1] = arr[1].Trim();
                        dr[2] = arr[2].Trim();
                        dt.Rows.Add(dr);
                    }
                    catch
                    {
                        continue;
                    }

                    i++;
                    j++;
                    if (dt.Rows.Count == 4000)
                    {
                        SqlBulkCopy bulkCopy1 = new SqlBulkCopy(ConfigurationSettings.AppSettings["SqlConnString"].ToString(), SqlBulkCopyOptions.Default);
                        //每一批次中的行数
                        bulkCopy1.BatchSize = 1000;
                        bulkCopy1.DestinationTableName = "Users";
                        SqlBulkCopyColumnMapping mapping1 = new SqlBulkCopyColumnMapping("UserName", "UserName");
                        SqlBulkCopyColumnMapping mapping2 = new SqlBulkCopyColumnMapping("UserPwd", "UserPwd");
                        SqlBulkCopyColumnMapping mapping3 = new SqlBulkCopyColumnMapping("Email", "Email");
                        bulkCopy1.ColumnMappings.Add(mapping1);
                        bulkCopy1.ColumnMappings.Add(mapping2);
                        bulkCopy1.ColumnMappings.Add(mapping3);
                        bulkCopy1.WriteToServer(dt);
                        bulkCopy1.Close();
                        dt.Rows.Clear();
                        i = 0;
                    }
                   
                }
                if (dt.Rows.Count > 0)
                {
                    SqlBulkCopy bulkCopy = new SqlBulkCopy(ConfigurationSettings.AppSettings["SqlConnString"].ToString(), SqlBulkCopyOptions.Default);
                    //每一批次中的行数
                    bulkCopy.BatchSize = 1000;
                    bulkCopy.DestinationTableName = "Users";
                    SqlBulkCopyColumnMapping mapping1 = new SqlBulkCopyColumnMapping("UserName", "UserName");
                    SqlBulkCopyColumnMapping mapping2 = new SqlBulkCopyColumnMapping("UserPwd", "UserPwd");
                    SqlBulkCopyColumnMapping mapping3 = new SqlBulkCopyColumnMapping("Email", "Email");
                    bulkCopy.ColumnMappings.Add(mapping1);
                    bulkCopy.ColumnMappings.Add(mapping2);
                    bulkCopy.ColumnMappings.Add(mapping3);
                    bulkCopy.WriteToServer(dt);
                    bulkCopy.Close();
                    dt.Rows.Clear();
                }

  • 相关阅读:
    shutil文件去重模块
    Nexus构建npm、yum、maven私有仓库
    centos7添加自定义服务到systemctl
    Sonatype nuxus私有仓库介绍
    rancher单节点备份和恢复
    rancher证书过期X509:certificate has expired or is not ye valid
    清理docker日志
    mysql 9 hash索引和B+tree索引的区别
    mysql 8 索引
    mysql 7 慢查询+慢查询工具
  • 原文地址:https://www.cnblogs.com/059212315/p/2297509.html
Copyright © 2011-2022 走看看