• 从文本中读入数据并插入到数据库,测试数据量为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();
                }

  • 相关阅读:
    Android JNI用于驱动測试
    shell实例浅谈之三产生随机数七种方法
    WEB安全实战(二)带你认识 XSS 攻击
    前端和云端性能分析工具分析报告
    【翻译】Ext JS——高效的编码风格指南
    dubbo协议
    JavaBean对象转map
    messagePack编解码
    主流编码框架
    java编解码技术,json序列化与二进制序列化
  • 原文地址:https://www.cnblogs.com/059212315/p/2297509.html
Copyright © 2020-2023  润新知