Csharp 讀取大文本文件數據到DataTable中,大批量插入到數據庫中

简介: 文本文件中的內容格式為:(其中問題,誰能否解決大於15M的文本文件能快速讀到DataTable中) 俚    rustic 俚语    slang 哩    mile 哩    onomat 哩数    milage 逦    winding 理    logic 理    reason 理    science 理八郎    Rihachiro 理兵卫    R


文本文件中的內容格式為:(其中問題,誰能否解決大於15M的文本文件能快速讀到DataTable中)

俚    rustic
俚语    slang
哩    mile
哩    onomat
哩数    milage
逦    winding
理    logic
理    reason
理    science
理八郎    Rihachiro
理兵卫    Rihee
理兵卫    Rihei
理财    financing
理财    portfolio
理查    Richard
理查德    Richard
理查德冰川    Richardsbreen
理查顿    Richardton
理查多    Richardo
理查多维奇    Richardovich
理查姆斯    Richarms
理查森    Richardson
理查特    Richart
理查特    Richarte
理查兹    Richards
理察    Richard
理次郎    Masajiro
理发    airdressing
理发    coiffure
理发    hairdressing
理发店    barbers
理发师    barber
理法    logos
理蕃    barbarians
理工    sciences
理光    Ricoh
理化    chemistry
理化学研究所    RIKEN
理会    notice
理吉郎    Rikichiro
理解    comprehend
理解    comprehension
理解    understand
理解    understandable
理解    understanding
理解力    comprehension
理解能力    savvy
理解人    understanding
理经济学    Matekon
理开    sleave
理理恩龙    Liliensternus
理疗医师    physiatrician
理论    theories
理论    theory
理论地    theoretically
理论化    theorise
理论家    doctrinarian
理论家    theoretician
理论家    theorist
理论上    academically
理论上    theoretically
理念    concept
理念    concepts
理念    ideal
理念    ideals
理念    ideas
理赔    compensate
理七郎    Rishichiro
理三郎    Risaburo
理十郎    Rijuro
理市郎    Riichiro
理事    director
理事    syndic
理事长    director
理事长    frata
理事会    council
理事会    meeting
理事之职    directorate
理四郎    Rishiro
理松庵    Rishoan
理所当然    behoove
理所当然    naturally
理所当然    proper
理太郎    Ritaro
理塘    Litang
理夏德    Ryszard
理想    ideal
理想    Ideal
理想    idealism
理想    idealists
理想    ideals
涂聚文  GeovinDu
涂斯博  SiboDu
理想报    Ideal
理想报    Kalpana
理想标准公司    Ideal-standard
理想地    ideally
理想国    utopia
理想国    Utopia
理想化    idealisation
理想化    idealization
理想化    idealize
理想美    beauideal
理想目标    dreamboat
理想坡莫合金    idealoy
理想人物    dreamboat
理想上    ideally
理想主义    idealism
理想主义地    idealistically
理想主义者    idealist
理性    rational
理性    rationality
理性    reason
理性论    rationalism
理性论者    rationalist
理性主义    rationalism
理性主义者    rationalist
塗聚文  GeovinDu


/// <summary>
        /// DatatTable數據批理插入數據庫中
        /// 塗聚文 2011-11-22
        /// 締友計算機信息技術有限公司 捷為工作室
        /// </summary>
        private void StartImport()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.TableLock);
            bulkCopy.DestinationTableName = "GeovinDuDictionary";
            bulkCopy.BatchSize = 1000000;  //每一批次產生的行數
            bulkCopy.NotifyAfter = 1000;
            bulkCopy.ColumnMappings.Add("中文", "WordChina"); //
            bulkCopy.ColumnMappings.Add("英文", "WordEnglish");
            bulkCopy.WriteToServer(CreateDataTableFromFile());
            sw.Stop();
            richTextBox1.Text = (sw.ElapsedMilliseconds / 1000.00).ToString();
        }
        /// <summary>
        /// 從文本文件中讀取數據到DatatTable中
        /// 塗聚文 2011-11-22
        /// 締友計算機信息技術有限公司 捷為工作室
        /// </summary>
        /// <returns></returns>
        private DataTable CreateDataTableFromFile()
        {
            DataTable dt = new DataTable();
            DataColumn dc;
            

            dc = new DataColumn();
            dc.DataType = System.Type.GetType("System.Int32");
            dc.ColumnName = "序号";
            dc.Unique = false;
            dt.Columns.Add(dc);
            dc = new DataColumn();
            dc.DataType = System.Type.GetType("System.String"); 
            dc.ColumnName = "中文";
            dc.Unique = false;
            dt.Columns.Add(dc);
            dc = new DataColumn();
            dc.DataType = System.Type.GetType("System.String");
            dc.ColumnName = "英文";
            dc.Unique = false;
            dt.Columns.Add(dc);

            StreamReader sr = new StreamReader(file);//text文件地址 大的文件,當讀出到DatatTable中,可以批理插入數據庫中
            string input;
            string cn = string.Empty;
            string en = string.Empty;
            int index = 0;
            while ((input = sr.ReadLine()) != null)
            {
                this.richTextBox1.AppendText(input + "\r\n");
                string[] s = input.Split(new char[] { '\t',' ' });
                //dr = dt.NewRow();
                //dr["序号"] = index;
                for (int i = 0; i < input.Length; i++)
                {
                    if (i == 0)
                    {
                        cn = s[i].ToString();
                        //dr["中文"] = s[i].ToString();
                    }
                    if (i == 1)
                    {
                        en = s[i].ToString();
                        //dr["英文"] = s[i].ToString();
                    }
                }               
                
                //dr["c4"] = s[3];
                //dt.Rows.Add(dr);
                dt.Rows.Add(index, cn, en);
                index++;
                Application.DoEvents();       
            }
            sr.Close();
            return dt;
        }


目录
相关文章
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
7天前
|
数据采集 数据库 Python
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
118 75
|
2月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
225 61
|
20天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
32 1
|
25天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
28天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
54 5
|
2月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
224 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
2月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
3月前
|
人工智能 Cloud Native 容灾
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?