internal void UpdateRow(string fileName, int id, FxRecordBuffer changeBuffer) { var initSubQuery = "SET "; var subQuery = initSubQuery; int bufferSize = changeBuffer.Count; int counter = 0; foreach (var field in changeBuffer) { counter++; subQuery += $"{field.Key} = '{field.Value}'"; if (counter < bufferSize) { subQuery += ", "; } } if (subQuery != initSubQuery) { using (_connection) { var query = $"UPDATE {fileName} " + subQuery + $" WHERE id = {id}"; _connection.Open(); DbCommand command = CreateCommand(query); command.ExecuteNonQuery(); _connection.Close(); } } }
private void UpdateRow() { bool isChanged = false; var changeBuffer = new FxRecordBuffer(); foreach (var field in CurrentRecord) { if (field.Value.ChangedValue != null) { isChanged = true; changeBuffer[field.Key] = field.Value.ChangedValue.ToString(); } } if (isChanged) { FxDataAdapter.Instance.UpdateRow(FileName, CurrentId(), changeBuffer); } }