事情是这样的,目前我正在开发某种应用程序,我必须从 excel 表中上传数据,并将其保存到数据库表(oracle)中。我设法通过 OracleDataAdapter 类完成了这个过程
_adapter = new OracleDataAdapter(query, _conn);
_adapter.Update(_dataTable);
然而,保存在 gridView 中加载的数据需要很长时间,比如 12 分钟保存 100000 个注册表。然后我尝试了OracleBulkCopy
which 确实在大约 10 到 15 秒内完成了工作,但问题在于它不尊重数据库中的主键。我尝试了一切,但它不尊重约束。
我还尝试通过执行以下操作自己制作插入方法:
OracleCommand cmdInsert = new OracleCommand();
cmdInsert.CommandText = query;
cmdInsert.Connection = DataAccess._conn;
OracleParameter id_Filtro = new OracleParameter();
cmdInsert.Parameters.Add(id_Filtro);
foreach (DataRow r in _table.Rows)
{
id_Filtro.DbType = DbType.Int32;
id_Filtro.Value = Convert.ToInt32(r["ID_FILTRO"].ToString());
id_Filtro.ParameterName = "id_Filtro ";
cmdInsert.ExecuteNonQuery();
}
我对每个参数都做了同样的事情,但插入所有数据也需要很长时间,大约 25 分钟左右。我想知道是否有更好的方法来完成这个过程。如果有人可以帮助我,我将不胜感激。我可以更新帖子以澄清任何询问,请注意我不是数据库或程序员专家。