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
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.