之前写了一篇C# 直接使用sql语句对数据库操作 (cmd.ExecuteNonQuery)的文章

这是针对数据量不大的操作,换句话说,效率太低,所以在此介绍一个效率高的、能大批量导入到数据库的方法

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

函数原型

public void WriteToServer(DataTable table);

不难看出这个函数需要的是DataTable的数据类型

正文开始:

需要using的东西

using System.Data.SqlClient;//SqlBulkCopy
using System.Configuration;//ConfigurationManager
using System.Data;//Datatable

在app.config中添加connectionstring

  <connectionStrings>
<add name="connString" connectionString="server=sk**ei**l0*;database=V*Q;integrated security=true"/>
</connectionStrings>

就插个代码吧  没什么讲的  注释都有

        static void Main(string[] args)
{
DataTable datasource = new DataTable();//数据源,这边没有给它数据源,将就看吧 string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();//config
SqlConnection conn = new SqlConnection(connString);
       conn.Open();
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(conn); sqlbulkcopy.DestinationTableName = "";//设置数据库表名
sqlbulkcopy.BulkCopyTimeout = ;//timeout,数据量大的话就需要设置一下,具体视情况而定 try
{
sqlbulkcopy.WriteToServer(datasource);//写入数据库
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
sqlbulkcopy.Close();
conn.Close();//关
}
}

另一种写法

        static void using_(DataTable datasource,string tablename) {
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ToString()))
{
conn.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
{
bulkCopy.DestinationTableName = tablename;//table name
bulkCopy.BatchSize = datasource.Rows.Count;
try
{
bulkCopy.WriteToServer(datasource);//写入数据库
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
bulkCopy.Close();
conn.Close();//关
}
}
}
}

最新文章

  1. EF INNER JOIN,LEFT JOIN,GROUP JOIN
  2. 解决firefox和IE9对icon font字体的跨域访问问题
  3. 【SDOI2010题集整合】BZOJ1922~1927&amp;1941&amp;1951&amp;1952&amp;1972&amp;1974&amp;1975
  4. [LeetCode] Binary Tree Preorder Traversal
  5. 【KVM安装】在Centos6.8中安装KVM
  6. Java中的栈:java.util.Stack类
  7. Java中ArrayList源码分析
  8. mysql中enum的用法
  9. WebView js 调用Java本地方法
  10. Stream 基础和常用
  11. LIB文件和DLL文件的作用
  12. HTML - Textarea - 空格的问题解决方式
  13. linux c socket programming
  14. 第三十二节,datetime时间模块
  15. 幂次法则power law
  16. VS编译LESS插件
  17. day5 列表
  18. 转 -- 详解python的super()的作用和原理
  19. vue系列之Vue-cli
  20. 使用函数接口和枚举实现配置式编程(Java与Scala实现)

热门文章

  1. 利用TPL(任务并行库)构建Pipeline处理Dataflow
  2. rar 配合 python 实现 excel密码保护 破解
  3. 组态DP主站与标准从站的步骤
  4. java并发初探CountDownLatch
  5. mabatis--查询缓存
  6. Data Cleaning_Chicago Air-quality Case_TBC!!!
  7. C语言学习从入门到精通书籍,10万读者都认可
  8. ADS 2015破解方法--笔记
  9. NFS实战
  10. 三 进制、精度,Java的类型转换