C#使用SqlBulkCopy 批量插入数据库方法测试

namespace 批量插入方法测试
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        //批量插入方法
        public static void BulkToDB(DataTable dt)
        {
            string connectionString = System.Configuration.ConfigurationManager.AppSettings["SqlServerConnString"];
            SqlConnection sqlConn = new SqlConnection(connectionString);
           
            SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
            bulkCopy.DestinationTableName = "Test";
            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();
            }
        }

       /// <summary>
       /// 构建一个四列的数据表
       /// </summary>
       /// <returns></returns>
        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("Useame",typeof(string)),
            new DataColumn("Pwd",typeof(string))});


            return dt;
        }

        private void button1_Click(object sender, EventArgs e)
        {
           
                DataTable dt = GetTableSchema();  //数据表
               //把list装入数据表中
                for (int i = 0; i < Getlist().Count; i++)
                {
                    DataRow r = dt.NewRow();
                    r[0] = Getlist()[i].Id;
                    r[1]= Getlist()[i].Name;
                    //r[2] = Getlist()[i].Age;
                    r[3] = Getlist()[i].Sex;
                    dt.Rows.Add(r);
                }
                BulkToDB(dt);
        
            MessageBox.Show("测试成功");

        }

        /// <summary>
        /// 列表中有四条数据都是2,4,6,8
        /// </summary>
        /// <returns></returns>
        public  static List<tst> Getlist()
        {
            List<tst>  tt = new List<tst>();
            for (int i = 0; i < 4; i++)
            {
                tt.Add(new tst("2", "4", "6", "8"));
            }
            return tt;
        }

    }
}
SqlBulkCopy使用使用用于自定义表类型作为存储过程参数,批量写入数据。

转载于:https://my.oschina.net/u/3522874/blog/1212661

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值