zoukankan      html  css  js  c++  java
  • 【转】C#批量导入数据到sqlserver

    在各类程序中经常碰到大批量数据要导入SqlServer的情况。使用循环数据集用INSERT插入数据库,当数据量比较小时,采用这样的办法还可以,但是当数据量在1000以上时,再用INSERT来一条一条插入数据库那么,效率是在是太低 ,其实MS早就替我们想到了,那么下面让我们用一段代码来讲解把。

    代码
    using System;
    using System.Collections.Generic;
    using System.Data;
    using Microsoft.Practices.EnterpriseLibrary.Data;
    using Microsoft.Practices.EnterpriseLibrary.Logging;
    using System.Threading;

    namespace InternetLogExport
    {
    class DataProcessing
    {
    /// <summary>
    /// 将抓取的Mysql数据导入Sqlserver
    /// </summary>
    /// <param name="sqldb">数据集</param>
    public bool InsertSqlServer(DataTable sqldb)
    {
    try
    {
    //数据批量导入sqlserver,创建实例
    System.Data.SqlClient.SqlBulkCopy sqlbulk = new System.Data.SqlClient.SqlBulkCopy(System.Configuration.ConfigurationManager.ConnectionStrings["wwwConn"].ToString());
    //目标数据库表名
    sqlbulk.DestinationTableName = "t_rz";
    //数据集字段索引与数据库字段索引映射
    sqlbulk.ColumnMappings.Add(0, 5);
    sqlbulk.ColumnMappings.Add(
    1, 4);
    sqlbulk.ColumnMappings.Add(
    2, 7);
    sqlbulk.ColumnMappings.Add(
    3, 1);
    sqlbulk.ColumnMappings.Add(
    4, 10);
    sqlbulk.ColumnMappings.Add(
    5, 6);
    sqlbulk.ColumnMappings.Add(
    6, 2);
    //导入
    sqlbulk.WriteToServer(sqldb);
    sqlbulk.Close();
    return true;
    }
    catch
    {
    return false;
    }

    }

    这是我的程序中的一段代码,是从MySql抓取数据然后导入SqlServer。每次抓取的数据一般都在2000-3000左右,用这样的方法每次导入SqlServer只需要2-3秒即可。

  • 相关阅读:
    【转载】懵逼了吧!年纪轻轻的存个屁钱啊
    【转载】CSS3的calc()使用
    【原创】修复ios输入框获取焦点时不支持fixed的bug
    【转载】Retina屏的移动设备如何实现真正1px的线?
    hadoop map(分片)数量确定
    使用DFS求任意两点的所有路径
    求图中某点到另一点的通路
    使用Maven下载jar包
    斜杠、反斜杠以及换行符
    N进制加法
  • 原文地址:https://www.cnblogs.com/MichaelZhangX/p/1922627.html
Copyright © 2011-2022 走看看