使用事务批量导入数据
2014-01-23 11:02
302 查看
/// <summary>
/// 使用事务和SqlBulkCopy批量导入数据
/// By Serein 2013-12-31
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="dt">數據集</param>
public string SqlBulkCopyData(string tableName, DataTable dt)
{
string msg = string.Empty;
SetConnection();
Cmd.Connection.Open();
SqlTransaction sqlbulkTransaction = Cmd.Connection.BeginTransaction();
SqlBulkCopy copy = new SqlBulkCopy(Cmd.Connection, SqlBulkCopyOptions.CheckConstraints, sqlbulkTransaction);
copy.DestinationTableName = tableName;
foreach (DataColumn dc in dt.Columns)
{
copy.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
}
try
{
copy.WriteToServer(dt);
sqlbulkTransaction.Commit();
msg = "S0000";
}
catch (Exception ex)
{
sqlbulkTransaction.Rollback();
//Console.WriteLine(ex.ToString());
msg = ex.Message;
//throw ex;
}
finally
{
copy.Close();
Cmd.Connection.Close();
}
return msg;
}
SqlCommand Cmd = new SqlCommand();
void SetConnection()
{
if (Cmd.Connection == null)
{
switch (DataBase)
{
case "MBS":
Cmd.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MBSConnectionString"].ConnectionString);
break;
}
}
}
/// 使用事务和SqlBulkCopy批量导入数据
/// By Serein 2013-12-31
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="dt">數據集</param>
public string SqlBulkCopyData(string tableName, DataTable dt)
{
string msg = string.Empty;
SetConnection();
Cmd.Connection.Open();
SqlTransaction sqlbulkTransaction = Cmd.Connection.BeginTransaction();
SqlBulkCopy copy = new SqlBulkCopy(Cmd.Connection, SqlBulkCopyOptions.CheckConstraints, sqlbulkTransaction);
copy.DestinationTableName = tableName;
foreach (DataColumn dc in dt.Columns)
{
copy.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
}
try
{
copy.WriteToServer(dt);
sqlbulkTransaction.Commit();
msg = "S0000";
}
catch (Exception ex)
{
sqlbulkTransaction.Rollback();
//Console.WriteLine(ex.ToString());
msg = ex.Message;
//throw ex;
}
finally
{
copy.Close();
Cmd.Connection.Close();
}
return msg;
}
SqlCommand Cmd = new SqlCommand();
void SetConnection()
{
if (Cmd.Connection == null)
{
switch (DataBase)
{
case "MBS":
Cmd.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MBSConnectionString"].ConnectionString);
break;
}
}
}
相关文章推荐
- 使用python,批量导入数据到elasticsearch中
- 使用bcp工具导入和导出批量数据
- 批量导入大数据表的时候 使用线程池处理
- Hbase 批量数据BulkLoad 导入使用
- Oracle中的数据使用plsql客户端批量导入
- 使用事务操作SQLite数据批量插入,提高数据批量写入速度,源码讲解
- 多线程的SqlBulkCopy批量导入、事务和SqlBulkCopy使用的数据集中自定义映射字段的注意事项
- asp.net使用组件koogra读取Excel数据批量上传导入
- Npgsql使用入门(三)【批量导入数据】
- DB2在导入数据时,如果数据量过大,出现事务日志满的错误(Database transaction log is full)该如何解决,commitcount使用
- 使用java MapReduce job 批量导入大额数据到Hbase
- oracle12c:通过oracle客户端工具配置tns,并使用sqlldr进行批量导入数据
- 使用事务和SqlBulkCopy导入大批量数据
- 使用ExcelFileParser处理excel获得数据 可作批量导入到数据库使用
- 使用python向Redis批量导入数据
- [导入]使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用NHibernate完成对数据的批量导入 .
- 使用SqlBulkCopy将datatable数据批量导入sqlServer
- pro*C 使用动态sql方法四实现数据批量导入导出
- 导入Excel的时候使用TransactionScope事务控制来进行数据