C#批量插数据到sqlserver数据库

        /// <summary>
        /// 使用slqbulk批量插入数据库中。2017.7.22 17:10
        /// </summary>
        /// <param name="dt"></param>
        public void sqlBulkCopyData(System.Data.DataTable dt)
        {
            //Stopwatch sw = new Stopwatch();
            using (SqlConnection conn1 = new SqlConnection("server=longdabing;database=test;uid=sa;pwd=sasa"))
            {
                SqlBulkCopy bulkCopy = new SqlBulkCopy(conn1);
                SqlTransaction sqltran = conn1.BeginTransaction();//开启事务
                bulkCopy.DestinationTableName = "inforsqlbulk";
                bulkCopy.BatchSize = dt.Rows.Count;

                if (conn.State == ConnectionState.Closed)
                {
                    conn1.Open();
                }

                //for (int i = 0; i < dt.Columns.Count; i++)
                //{
                //    bulkCopy.ColumnMappings.Add(i, i);  //映射定义数据源中的列和目标表中的列之间的关系
                //}
                try
                {
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        bulkCopy.WriteToServer(dt);
                    }
                }
                catch
                {
                    sqltran.Rollback();//回滚。
                }
            }
            
        }

 

posted @ 2017-07-22 17:49  longdb  阅读(255)  评论(0)    收藏  举报