首页 > 代码库 > c#批量插入数据库Demo

c#批量插入数据库Demo

using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Diagnostics;using System.Linq;using System.Text;namespace SqlServerBulkInsert{    class Program    {        public static void BulkToDB(DataTable dt)        {            SqlConnection sqlConn = new SqlConnection(                ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString);            SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);            bulkCopy.DestinationTableName = "BulkTestTable";            bulkCopy.BatchSize = dt.Rows.Count;            try            {                sqlConn.Open();                if (dt != null && dt.Rows.Count != 0)                    bulkCopy.WriteToServer(dt);            }            catch (Exception ex)            {                throw ex;            }            finally            {                sqlConn.Close();                if (bulkCopy != null)                    bulkCopy.Close();            }        }        public static DataTable GetTableSchema()        {            DataTable dt = new DataTable();            dt.Columns.AddRange(new DataColumn[]{               new DataColumn("Id",typeof(int)),               new DataColumn("UserName",typeof(string)),               new DataColumn("Pwd",typeof(string))});            return dt;        }        static void Main(string[] args)        {            Stopwatch sw = new Stopwatch();            for (int multiply = 0; multiply < 10; multiply++)            {                DataTable dt = GetTableSchema();                for (int count = multiply * 100000; count < (multiply + 1) * 100000; count++)                {                    DataRow r = dt.NewRow();                    r[0] = count;                    r[1] = string.Format("User-{0}", count * multiply);                    r[2] = string.Format("Pwd-{0}", count * multiply);                    dt.Rows.Add(r);                }                sw.Start();                BulkToDB(dt);                sw.Stop();                Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds));            }            Console.ReadLine();        }    }}//------------------以下是测试数据库及表的建立sql语句————————————————————————————USE [BulkTestDB]GO/****** Object:  Table [dbo].[BulkTestTable]    Script Date: 09/22/2016 09:38:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[BulkTestTable](    [Id] [int] NOT NULL,    [UserName] [nvarchar](32) NULL,    [Pwd] [varchar](16) NULL,PRIMARY KEY CLUSTERED (    [Id] ASC)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGO

FROM:http://www.cnblogs.com/rengke2002/p/5895004.html

 

c#批量插入数据库Demo