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


目录
相关文章
|
3月前
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
29天前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
1月前
|
人工智能 Java 关系型数据库
使用数据连接池进行数据库操作
使用数据连接池进行数据库操作
72 11
|
2月前
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
6月前
|
存储 缓存 数据库
数据库数据删除策略:硬删除vs软删除的最佳实践指南
在项目开发中,“删除”操作常见但方式多样,主要分为硬删除与软删除。硬删除直接从数据库移除数据,操作简单、高效,但不可恢复;适用于临时或敏感数据。软删除通过标记字段保留数据,支持恢复和审计,但增加查询复杂度与数据量;适合需追踪历史或可恢复的场景。两者各有优劣,实际开发中常结合使用以满足不同需求。
512 4
|
2月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
219 0
|
4月前
|
存储 SQL Java
数据存储使用文件还是数据库,哪个更合适?
数据库和文件系统各有优劣:数据库读写性能较低、结构 rigid,但具备计算能力和数据一致性保障;文件系统灵活易管理、读写高效,但缺乏计算能力且无法保证一致性。针对仅需高效存储与灵活管理的场景,文件系统更优,但其计算短板可通过开源工具 SPL(Structured Process Language)弥补。SPL 提供独立计算语法及高性能文件格式(如集文件、组表),支持复杂计算与多源混合查询,甚至可替代数据仓库。此外,SPL 易集成、支持热切换,大幅提升开发运维效率,是后数据库时代文件存储的理想补充方案。
|
7月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
6月前
|
人工智能 关系型数据库 分布式数据库
让数据与AI贴得更近,阿里云瑶池数据库系列产品焕新升级
4月9日阿里云AI势能大会上,阿里云瑶池数据库发布重磅新品及一系列产品能力升级。「推理加速服务」Tair KVCache全新上线,实现KVCache动态分层存储,显著提高内存资源利用率,为大模型推理降本提速。