c# 使用Oracle.ManagedDataAccess.Client 对datatable批量插入Oracle
时间: 2023-12-21 14:13:27 浏览: 128
Oracle.ManagedDataAccess.dll.rar
5星 · 资源好评率100%
可以使用以下代码实现datatable批量插入Oracle数据库:
```csharp
using Oracle.ManagedDataAccess.Client;
// 创建Oracle连接
using (OracleConnection conn = new OracleConnection("your_connection_string"))
{
conn.Open();
// 创建OracleDataAdapter和OracleCommandBuilder
using (OracleDataAdapter adapter = new OracleDataAdapter("SELECT * FROM your_table", conn))
using (OracleCommandBuilder builder = new OracleCommandBuilder(adapter))
{
// 获取datatable的变化,即新增的行
DataTable changes = your_datatable.GetChanges(DataRowState.Added);
// 如果有新增的行
if (changes != null)
{
// 将datatable的列与Oracle数据库的列进行映射
adapter.InsertCommand = builder.GetInsertCommand();
// 使用OracleBulkCopy类批量插入数据库
using (OracleBulkCopy bulkCopy = new OracleBulkCopy(conn))
{
bulkCopy.DestinationTableName = "your_table_name";
bulkCopy.WriteToServer(changes);
}
// 提交datatable的变化
your_datatable.AcceptChanges();
}
}
}
```
此代码使用OracleDataAdapter和OracleCommandBuilder获取datatable的变化,并使用OracleBulkCopy类批量插入数据库。注意,要将datatable的列与Oracle数据库的列进行映射,否则会出现插入错误。
阅读全文