0

私は C#.Net と Oracle、Windows アプリケーションで作業しています。私のデータセットには、約 1500 のレコードがあります。for ループを使用して、これらのレコードをデータベースに更新する必要があります。ループは正しく実行されています。初めて、最初のレコードが更新されました。ループが 2 行目に進むたびに、何も起こりません。エラーは発生しません。

これが私の更新コードです

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;
4

2 に答える 2

0

この質問を見たいと思うかもしれません。必要なことを正確に実行しますが、より効率的で安全です。そこにあるリンクに従って、一括操作の詳細を確認してください。

于 2013-02-26T12:31:49.803 に答える
0

各ループで更新を 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;
于 2013-02-26T14:02:24.993 に答える