winform小程序向数据表插入的问题
插入的量大时,就挂掉了,1万条可以,10万条直接卡住,挂掉了
以下是主要代码: 怎么回事啊
- C# code
public static bool OperateDatasWithTransaction(List<string> sqlList) { OracleConnection myConnection = new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStrOrcl"]); myConnection.Open(); OracleCommand myCommand = myConnection.CreateCommand(); OracleTransaction myTrans; // Start a local transaction myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted); // Assign transaction object for a pending local transaction myCommand.Connection = myConnection; myCommand.Transaction = myTrans; try { foreach (string item in sqlList) { myCommand.CommandText = item; myCommand.ExecuteNonQuery(); } myTrans.Commit(); return true; } catch (Exception) { myTrans.Rollback(); return false; } finally { myConnection.Close(); }
[解决办法]
十万条确实要运行好一会,你就是程序i++到10万也有明显的等待
[解决办法]
oracle下不知道有没有类似于sql server的bcp导入功能,如果用sql语句循环插入肯定会慢
[解决办法]
用新线程后台慢慢更新.
[解决办法]
调用十次OperateDatasWithTransaction,而不是一次完成。
[解决办法]
[解决办法]
异步,或者多线程