博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlServer的两种插入方式效率对比
阅读量:5280 次
发布时间:2019-06-14

本文共 2010 字,大约阅读时间需要 6 分钟。

  protected void button1_Click(object sender, EventArgs e)

        {

            DataTable dtSource = new DataTable();

            dtSource.Columns.Add("Name", typeof(string));

            dtSource.Columns.Add("Address", typeof(string));

 

            DataRow dr;

 

            for (int i = 0; i < 100 * 100; i++)

            {

                dr = dtSource.NewRow();

                dr["Name"] = "Name" + i;

                dr["Address"] = "Address" + i;

 

                dtSource.Rows.Add(dr);

            }

 

            //将内存表dt中的1W条数据一次性插入到t_Data表中的相应列中 

            System.Diagnostics.Stopwatch st = new System.Diagnostics.Stopwatch();

            st.Start();

            string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

            using (SqlBulkCopy copy = new SqlBulkCopy(connStr))

            {

                //1 指定数据插入目标表名称 

                copy.DestinationTableName = "Student";

 

                //2 告诉SqlBulkCopy对象 内存表中的 OrderNO1和Userid1插入到OrderInfos表中的哪些列中 

                copy.ColumnMappings.Add("Name", "Name");

                copy.ColumnMappings.Add("Address", "Address");

 

                //3 将内存表dt中的数据一次性批量插入到OrderInfos表中 

                copy.WriteToServer(dtSource);

            }

            st.Stop();

           this.lblPL.InnerText="数据插入成功,总耗时为:" + st.ElapsedMilliseconds + "毫秒";

 

        }

 

 

protected void button2_Click(object sender, EventArgs e)

        {

            DataTable dtSource = new DataTable();

            dtSource.Columns.Add("ID", typeof(int));

            dtSource.Columns.Add("Name", typeof(string));

            dtSource.Columns.Add("Address", typeof(string));

 

            DataRow dr;

 

            for (int i = 0; i < 100 * 100; i++)

            {

                dr = dtSource.NewRow();

                dr["Name"] = "Name" + i;

                dr["Address"] = "Address" + i;

 

                dtSource.Rows.Add(dr);

            }

 

            System.Diagnostics.Stopwatch st = new System.Diagnostics.Stopwatch(); //计算时间 

            st.Start();

            string conn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;     //连接数据库 

            string sqlText = "select * from Student";          //SQL语句,用于查出符合条件的数据库数据 

 

            //当上述工作完成之后,我们调用SqlDataAdapter的Fill()方法,将查询出来的数据表内容填充的一张DataTable里面  

            SqlDataAdapter SDA = new SqlDataAdapter(sqlText, conn);

            SDA.Fill(dtSource);

            //这个SqlCommandBuilder用来自动生成添加、删除、修改的语句,注意这个参数是刚才建立的SqlDataAdapter。 

            SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);

            SDA.Update(dtSource);         //数据录入 

            st.Stop();

           this.lblCT.InnerText="数据插入成功,总耗时为:" + st.ElapsedMilliseconds + "毫秒";

 

        }

 

 

转载于:https://www.cnblogs.com/wnxyz8023/p/9989417.html

你可能感兴趣的文章
编程:对经验世界的析构与建构
查看>>
Openstack api 学习文档 & restclient使用文档
查看>>
vim linux下查找显示^M并且删除
查看>>
poj100纪念
查看>>
ExtJs4 笔记(5) Ext.Button 按钮
查看>>
把execl导入到数据库中
查看>>
阿里云人脸比对API封装
查看>>
如何将数据库中的表导入到PowerDesigner中(转)
查看>>
汇编总结一
查看>>
html5-表单常见操作
查看>>
Oracle中Union与Union All的区别(适用多个数据库)
查看>>
String = ""和String = null的区别
查看>>
C#测试题若干,都是基础阿
查看>>
NetWork——关于TCP协议的三次握手和四次挥手
查看>>
如果TCP采用两次握手
查看>>
An easy problem
查看>>
MauiMETA工具的使用(一)
查看>>
LeetCode: Anagrams 解题报告
查看>>
用cookie登录慕课网络教学中心刷评论
查看>>
牛腩新闻视频 回车键的疑惑
查看>>