使用查询-C#和ORacle进行批量更新
本文关键字:更新 ORacle 查询 -C# | 更新日期: 2023-09-27 18:01:05
我在C#.Net和Oracle、Windows应用程序中工作。在我的数据集中,我有大约1500条记录。使用for循环,我需要将这些记录更新到数据库中。循环执行正确。第一次更新了第一条记录。每当循环进入第二行时,都不会发生任何事情。我没有犯任何错误。
这是我的更新代码
log.Debug("Update Starts..");
OracleTransaction oraTransaction = BeginTransaction();
string Zip = string.Empty;
StringBuilder updateSql = new StringBuilder();
updateSql.Append("UPDATE STORE SET ");
updateSql.Append(" LAT = ").Append("'").Append(Latitude).Append("'");
updateSql.Append(" ,LONG = ").Append("'").Append(Longitude).Append("'");
updateSql.Append(" ,LOCATION_TYPE = ").Append("'").Append(locationType).Append("'");
updateSql.Append(" ,UPDATE_TIMESTAMP = ").Append("'").Append(PopulatedDate).Append("'");
updateSql.Append(" WHERE ");
updateSql.Append(" STR_ID = ").Append("'").Append(StoreID).Append("'");
int result = OracleHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, updateSql.ToString());
CommitTransaction(oraTransaction);
EndTransaction(oraTransaction);
CloseConnection(oracleConnection);
log.Debug("Update Ends.." + result);
return 1;
如果你在每个循环中只做一次更新,而你正在做1500个循环,那么我建议跳过事务,并在每个循环关闭连接。
log.Debug("Update Starts..");
StringBuilder updateSql = new StringBuilder();
updateSql.Append("UPDATE STORE SET ");
updateSql.Append(" LAT = ").Append("'").Append(Latitude).Append("'");
updateSql.Append(" ,LONG = ").Append("'").Append(Longitude).Append("'");
updateSql.Append(" ,LOCATION_TYPE = ").Append("'").Append(locationType).Append("'");
updateSql.Append(" ,UPDATE_TIMESTAMP = ").Append("'").Append(PopulatedDate).Append("'");
updateSql.Append(" WHERE ");
updateSql.Append(" STR_ID = ").Append("'").Append(StoreID).Append("'");
int result = OracleHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, updateSql.ToString());
log.Debug("Update Ends.." + result);
return 1;
您可能想看看这个问题。它正是在做你需要的事情,但更高效、更安全。请访问此处提供的链接,了解有关批量操作的更多信息。