误入歧途1

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

项目很大,需要我做的东西但挺少,还是挺可惜。机会不多 好好把握。

 项目目标:从母系统获取数据组成一张表,把数据放入子系统的数据库中,over

项目过程:使用ado.net访问数据库getAllInfos  into a table 然后把数据插入系统

项目学习知识:1.大量数据插入 高效快捷的方法

                         2.progressBar和插入数据的同时进行(多线程)

查询内容:http://blog.csdn.net/jacksonxin/article/details/53889508  C#批量插入大数据到SQL server

 http://www.cnblogs.com/luxiaoxun/p/3280146.html  C#多线程编程


 

using System.Data.SqlClient;
using System.Diagnostics;

        /// <summary>
        /// sqlbulkcopy 方法查询
        /// </summary>
        /// <param name="dt">插入数据库的table表</param>
        /// <returns></returns>
        public static string insertBulk(DataTable dt)
        {
            const string connString = @"数据库链接string";

            Stopwatch sw = new Stopwatch();//用于测试运行时间
            using (SqlConnection conn = new SqlConnection(connString))
            {
                SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);//批量加载sql表
                bulkCopy.DestinationTableName = "[WuLiu].[dbo].[GoodsInfo]";//服务器上目标表的名称
                bulkCopy.BatchSize = dt.Rows.Count;//没一批次的行数

                for(int i=0;i<dt.Columns.Count;i++)
                {
                    bulkCopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);//用于让表列名和数据库中表列名一一对应,如果表名不对应会报错

                }

                conn.Open();
                sw.Start();
                if(dt!=null&&dt.Rows.Count!=0)
                {
                    bulkCopy.WriteToServer(dt);//执行
                    sw.Stop();
                }
                return sw.Elapsed.ToString();
            }
        }


 

        private void ma()
        {
            //子线程操作的内容


        }
        private void button3_Click(object sender, EventArgs e)
        {
            Thread thread = new Thread(new ThreadStart(ma));//新建线程
            thread.Start();
            for (int i = 0; i < 100; i++)
            {
                this.progressBar1.Value = i;
                Thread.Sleep(100); //以免太快没效果

            }
            this.progressBar1.Visible = false;
            
        }

posted on 2017-07-22 14:50  误入歧途1  阅读(130)  评论(0)    收藏  举报