c# 数据库大批量提交
2016-01-26 10:17
513 查看
sql server:
#region sqlserver 大批量数据插入
/// <summary>
/// sqlserver 大批量数据插入
/// </summary>
/// <param name="dt"></param>
/// <param name="tablename">表名</param>
/// <param name="columns">列名</param>
public void BulkInsertForDataTable(DataTable dt, string tablename, string[] columns)
{
using (SqlConnection connection = new SqlConnection(constr_his))
{
connection.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
try
{
bulkCopy.DestinationTableName = tablename;//要插入的表的表明
//映射字段名 DataTable列名 ,数据库 对应的列名
foreach (string column in columns)
{
bulkCopy.ColumnMappings.Add(column, column);
}
bulkCopy.WriteToServer(dt);
}
catch (Exception ex)
{
//throw new Exception(ex.Message);
}
finally
{
// Close the SqlDataReader. The SqlBulkCopy
// object is automatically closed at the end
// of the using block.
}
}
}
}
#endregion
oracle:
dt2 = new DataTable();
dt = 查询出来的数据;
using (OracleConnection con_qzj = new OracleConnection(constr_qzj))
{
da_qzj = new OracleDataAdapter("", con_qzj);
da_qzj.SelectCommand.CommandText = "select LOCAL_ID from DI_MPI_REGISTERINFO where 1=2";
Oraclecmd = new OracleCommandBuilder(da_qzj);
da_qzj.Fill(dt2);
for (int j = 0; j < dt.Rows.Count; j++)
{
dt2.Rows.Add(dt.Rows[j].ItemArray);
}
da_qzj.Update(dt2);
}
#region sqlserver 大批量数据插入
/// <summary>
/// sqlserver 大批量数据插入
/// </summary>
/// <param name="dt"></param>
/// <param name="tablename">表名</param>
/// <param name="columns">列名</param>
public void BulkInsertForDataTable(DataTable dt, string tablename, string[] columns)
{
using (SqlConnection connection = new SqlConnection(constr_his))
{
connection.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
try
{
bulkCopy.DestinationTableName = tablename;//要插入的表的表明
//映射字段名 DataTable列名 ,数据库 对应的列名
foreach (string column in columns)
{
bulkCopy.ColumnMappings.Add(column, column);
}
bulkCopy.WriteToServer(dt);
}
catch (Exception ex)
{
//throw new Exception(ex.Message);
}
finally
{
// Close the SqlDataReader. The SqlBulkCopy
// object is automatically closed at the end
// of the using block.
}
}
}
}
#endregion
oracle:
dt2 = new DataTable();
dt = 查询出来的数据;
using (OracleConnection con_qzj = new OracleConnection(constr_qzj))
{
da_qzj = new OracleDataAdapter("", con_qzj);
da_qzj.SelectCommand.CommandText = "select LOCAL_ID from DI_MPI_REGISTERINFO where 1=2";
Oraclecmd = new OracleCommandBuilder(da_qzj);
da_qzj.Fill(dt2);
for (int j = 0; j < dt.Rows.Count; j++)
{
dt2.Rows.Add(dt.Rows[j].ItemArray);
}
da_qzj.Update(dt2);
}
相关文章推荐
- oracle10g,有没有不足位数补0的函数
- 查询mysql数据库中所有的表和对应表中所有的字段
- oracle CHARINDEX 函数用法
- sql中查询某个表是否存在
- 将人脸数据库生成为.txt文件
- ORA-00020: maximum number of processes () exceeded, sqlplus / as sysdba无法登陆
- sql server学习笔记
- oracle 在有数据的前提下变更字段类型
- Oracle EBS - 工单状态
- Oracle数据库中建立索引的基本方法讲解
- hibernate调用mysql存储过程
- MySQL中TIMESTAMP和DATETIME区别
- 19个MySQL性能优化要点解析
- 将一个序列化的对象存放到数据库的方法
- InstallShield高级应用--检查是否安装ORACLE或SQL Server
- mysql常用操作
- oracle优化思考-双刃剑
- 解决 ORA-28547 连接服务器失败,可能是Oracle Net 管理错误
- sql字段类型之decimal 和 numeric
- Oracle中的EXISTS与IN