Hi, good day
Esri and Esri Community
I´m trying to create a button that mass update data of a field in arcgis pro sdk (like the Field Calculator do).
I found many ways to solve it but I don’t know which is the fastest for mass update data; ¿anyone can help me to identify the best solution?
Solutions:
Actually I’m using Geoprocessing Tool (CalculateField_management).
Can you explain what do you mean by "mass update"? What is your data saved in?
I do not think you can use Search/Cursor to update data.
EditOperation is the recommended way to update data.
The fastest way is likely a direct database call but you are exposing yourself to breaking something if you are not 100% sure what you're doing.
Hi ViktorSafar
Thanks for answer.
Right now i'am trying to standardize addresses that are store in standalone table inside a filegeodatabase (testing.gdb).
For example, massive change the address (New York 10032 United States America) or (New Y 10032 United States) or (NYork 10032 United America) to standart adress (NY 10032 USA) for throusands of records (like 30.000 or more).
Here some code of my app when i clic the button "Normalizar".
List<string> listaConsultas = new List<string>(); private async void Button_Click(object sender, RoutedEventArgs e) { var mvp = MapView.Active.Map; string NameTablaIngreso = this.MiComboBox1.Text.ToString(); string NameCampoDireccion = this.MiComboBox2.Text.ToString(); var tablaIngreso = mvp.GetStandaloneTablesAsFlattenedList().OfType<StandaloneTable>().Where(lyrd => lyrd.Name == NameTablaIngreso).FirstOrDefault(); listaConsultas.Add("!" + NameCampoDireccion + "!.replace(\"New York\", \"NY\")"); listaConsultas.Add("!" + NameCampoDireccion + "!.replace(\"New Y\", \"NY\")"); listaConsultas.Add("!" + NameCampoDireccion + "!.replace(\"N York\", \"NY\")"); var comotabla = tablaIngreso as StandaloneTable; await QueuedTask.Run(() => { for (int rdc = 0; rdc < listaConsultas.Count; rdc++) { var args = Geoprocessing.MakeValueArray(comotabla, NameCampoDireccion, listaConsultas[rdc], "PYTHON3"); var gp_result = Geoprocessing.ExecuteToolAsync("CalculateField_management", Geoprocessing.MakeValueArray(args.ToArray())); comotabla.ClearSelection(); } } MessageBox.Show("End."); }
Here my interface.
This thread may help:
https://community.esri.com/t5/arcgis-pro-sdk-questions/editing-features-very-slow/td-p/1137254
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.