zoukankan      html  css  js  c++  java
  • SQLServer极速批量插入数据的方式


    public bool Inserts(ObservableCollection<CustomerModel> models)

    {

    DataTable dataTable = SQLHelper.ExecteAdapter("select top 0 * from Customer", CommandType.Text, null);
    foreach (var m in models)
    {
    DataRow dataRow = dataTable.NewRow();
    dataRow[1] = m.Name;
    dataRow[2] = m.Add;
    dataRow[3] = m.Email;
    dataRow[4] = m.Phone;
    dataTable.Rows.Add(dataRow);
    }
    SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(SQLHelper.ConnString);
    sqlBulkCopy.DestinationTableName = "Customer";
    try
    {
    if (dataTable != null && dataTable.Rows.Count > 0)
    {
    sqlBulkCopy.WriteToServer(dataTable); 
    }
    return true;
    }
    catch (Exception ex)
    {
    return false;
    }
    finally
    {
    sqlBulkCopy.Close();
    }
    }

      

    public static DataTable ExecteAdapter(string sql, CommandType type, params SqlParameter[] param)
            {
                using (SqlDataAdapter adapter = new SqlDataAdapter(sql, ConnString))
                {
                    SqlCommand cmd = adapter.SelectCommand;
                    if (param != null)
                    {
                        cmd.Parameters.AddRange(param);
                    }
                    cmd.CommandType = type;
                    DataTable dt = new DataTable();
                    adapter.Fill(dt);
                    return dt;
                }
            }
    注明:插入5000条数据时,使用SQLHelper方式需要约35秒,使用Entity Framework方式需要约55秒,采用SqlBulkCopy方式需要约2秒,真是光速啊,爽。
  • 相关阅读:
    linux常用命令
    TP5 使用额外查询
    高性能mysql[day 1]
    tp6 使用多模块/应用
    linux进程间通信的方式
    Mac将本地文件上传到Centos7(Linux)服务器上
    响应式Web设计:构建令人赞叹的Web应用程序的秘诀
    单页应用(SPA,Single-page-App)和多页应用(MPA,Multi-page App)的区别
    PWA(Progressive web apps),渐进式 Web 应用
    10年大佬博客
  • 原文地址:https://www.cnblogs.com/Kingly/p/2650388.html
Copyright © 2011-2022 走看看