問題はこれです。現在、Excelシートからデータをアップロードし、データベーステーブル(Oracle)に保存する必要があるアプリケーションを開発しています。私は OracleDataAdapter クラスによってこのプロセスを達成することができました
_adapter = new OracleDataAdapter(query, _conn);
_adapter.Update(_dataTable);
ただし、gridView に読み込まれたデータを保存するには、100000 レジストリで 12 分かかるなど、かなりの時間がかかります。次に、実際に約10〜15秒で作業を行う を試しましたOracleBulkCopy
が、データベースの主キーを尊重しないという問題があります。私はすべてを試しましたが、制約を尊重しません。
また、次のようなことを行って、挿入メソッドを自分で作成しようとしました。
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 分ほどかかりました。プロセスを実行するためのより良い方法があるかどうか疑問に思います。誰かが私を助けることができれば、私は本当に感謝しています. 投稿を更新して質問を明確にすることができます。私はデータベースまたはプログラマーの専門家ではないことに注意してください。