SqlBulkCopy可以批量插入数据库数据,非常快
做个记录
public static void Inert2DBBySqlBulkCopy(DataTable data, string tableName)
       {
           using (SqlConnection conn = new SqlConnection(Const.ConnectionString))
           {
               if (conn.State != ConnectionState.Open)
                   conn.Open();
               using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(conn))
               {  
                   sqlBulkCopy.ColumnMappings.Add(0, "Code");
                   sqlBulkCopy.ColumnMappings.Add(1, "Date");
                   sqlBulkCopy.ColumnMappings.Add(2, "Open");
                   sqlBulkCopy.ColumnMappings.Add(3, "High");
                   sqlBulkCopy.ColumnMappings.Add(4, "Low");
                   sqlBulkCopy.ColumnMappings.Add(5, "Close");
                   sqlBulkCopy.ColumnMappings.Add(6, "Vol");
                   sqlBulkCopy.ColumnMappings.Add(7, "Amount");

                   sqlBulkCopy.BatchSize = data.Rows.Count;
                   sqlBulkCopy.BulkCopyTimeout = 60;
                   sqlBulkCopy.DestinationTableName = tableName;
                   sqlBulkCopy.WriteToServer(data);
               }
               if (conn.State != ConnectionState.Closed)
                   conn.Close();
           }
       }

Leave a Reply