读取文本文件的所有行并写入到数据库

来源:互联网 发布:java99乘法表数组编程 编辑:程序博客网 时间:2024/06/01 10:51
using System;using System.Linq;using System.Text;using System.IO;using System.Data;using System.Data.SqlClient;using System.Diagnostics;/*文本文件 text.txt 内容:001-002-开封003-004-湖南测试表 test 创建SQL:USE tempdbGOIF OBJECT_ID('test') IS NOT NULLDROP TABLE testGOCREATE TABLE test(StratNo NVARCHAR(50),    EndNo NVARCHAR(50),    Name NVARCHAR(50))*/namespace ConsoleApplication7{    class Program    {        static void Main(string[] args)        {            DataTable dt = new DataTable();            dt.Columns.Add("StratNo");            dt.Columns.Add("EndNo");            dt.Columns.Add("Name");            string path = @"C:\Users\Administrator\Desktop\test.txt";            Stopwatch sw = Stopwatch.StartNew();            try            {                //读取文本文件中的所有行,并存入到 DataTable                var s = (from line in File.ReadAllLines(path, Encoding.Default)                         from data in Read(line, dt)                         select data).ToList();                //用批量方式快速将数据写入到表                string connString = @"data source=(local)\sqlserver2014;initial catalog=tempdb;Integrated Security=True;";                using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connString))                {                    bulkCopy.DestinationTableName = "test";                    bulkCopy.WriteToServer(dt);                }                sw.Stop();                Console.WriteLine("完成所有操作,耗时:{0} 毫秒", sw.Elapsed.Milliseconds);            }            catch (Exception ex)            {                Console.WriteLine("出现异常:"+ex.Message);            }            Console.Read();        }        //返回值没什么意义,主要是为填充DataTable.        //但不返回 string 语法过不了        private static string Read(string line, DataTable dt)        {            DataRow dr = dt.NewRow();            string[] arr = line.Split('-');            if (arr.Length >= 3)            {                dr["StratNo"] = arr[0];                dr["EndNo"] = arr[1];                dr["Name"] = arr[2];                dt.Rows.Add(dr);            }            return string.Empty;        }    }}

阅读全文
0 0
原创粉丝点击