dataTable写入数据库(大数据写入)

例1:

connectionStr,链接字符串
dataTableName, 数据库中对应表名
sourceDataTable DataTable 要写入数据库的DataTable
字段要和表一致

public static void SqlBulkCopyByDataTable(string connectionStr, string dataTableName, DataTable sourceDataTable, int batchSize = 100000)
{
using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionStr))
{
using (System.Data.SqlClient.SqlBulkCopy sqlBulkCopy = new System.Data.SqlClient.SqlBulkCopy(connectionStr,
System.Data.SqlClient.SqlBulkCopyOptions.UseInternalTransaction))
{
try
{
sqlBulkCopy.DestinationTableName = dataTableName;
sqlBulkCopy.BatchSize = batchSize;
for (int i = 0; i < sourceDataTable.Columns.Count; i++)
{
sqlBulkCopy.ColumnMappings.Add(sourceDataTable.Columns[i].ColumnName, sourceDataTable.Columns[i].ColumnName);
}
sqlBulkCopy.WriteToServer(sourceDataTable);
}
catch (Exception ex)
{

throw ex;
}
}
}
}

 

例2:

  1. //省略连接字符串  
  2.  SqlConnection conn = new SqlConnection(".....");  
  3.  conn.Open();  
  4.  //初始化类  
  5.  using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))  
  6.  {  
  7.      //获取需要导入的数据表  
  8.      DataTable dt = GetDataTable();  
  9.   
  10.      //每10W条数据一个事物  
  11.      sqlBC.BatchSize = 100000;  
  12.   
  13.      //超时时间  
  14.      sqlBC.BulkCopyTimeout = 60;  
  15.   
  16.      //表名Users  
  17.      sqlBC.DestinationTableName = "dbo.Users";  
  18.   
  19.      //字段对应,分表为原数据表字段名,和导入数据库的字段名  
  20.      sqlBC.ColumnMappings.Add("Access_ID", "MSSQL_ID");  
  21.      sqlBC.ColumnMappings.Add("Access_Name", "MSSQL_Name");  
  22.      //sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");  
  23.      //sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");  
  24.   
  25.      //导入到数据库  
  26.      sqlBC.WriteToServer(dt); 

转载于:https://www.cnblogs.com/it-xcn/p/5889379.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中,可以使用DataTable来将数据写入到mdb文件中。根据引用\[1\]和引用\[2\]的内容,可以使用以下代码来实现: ```csharp using System.Data; using System.Data.OleDb; // 创建一个DataTable对象,假设为dt DataTable dt = new DataTable(); // 假设已经将数据填充到dt中 // 定义连接字符串,假设为connStr string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path\\to\\your\\mdbfile.mdb"; // 创建OleDbConnection对象 using (OleDbConnection conn = new OleDbConnection(connStr)) { // 打开连接 conn.Open(); // 创建OleDbDataAdapter对象 using (OleDbDataAdapter adapter = new OleDbDataAdapter()) { // 设置adapter的连接对象和要执行的SQL语句 adapter.SelectCommand = new OleDbCommand("SELECT * FROM YourTableName", conn); // 创建OleDbCommandBuilder对象,用于自动生成插入、更新和删除的SQL语句 OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter); // 将DataTable中的数据写入到mdb文件中 adapter.Update(dt); // 关闭连接 conn.Close(); } } ``` 以上代码使用了OleDbConnection和OleDbDataAdapter来连接和操作mdb文件,通过adapter.Update(dt)将DataTable中的数据写入到mdb文件中。请注意替换connStr为你自己的连接字符串,以及YourTableName为你要写入数据的表名。 #### 引用[.reference_title] - *1* *2* [C#将excel数据导入mdb的三种方法(针对5万条数据)](https://blog.csdn.net/linnge/article/details/119328600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [详解C#把DataTable中数据一次插入数据库的方法](https://blog.csdn.net/weixin_28802499/article/details/113266025)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值