necesitaría meterme a detalle de tu code.. porque no intentas probar de ésta forma:
Cita: ...
...
Dim sSQL as String = string.Format("UPDATE CargoServicios SET cargo = {0} WHERE IdServicio = {1}",cargo_servicio,lst_reg_serv.DataKeys)
cmd = New SqlClient.SqlCommand(sSQL)
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()
Por cierto..

el lst_reg_serv.DataKeys me llama la atencion que lo tengas así porque estás regresando una colección no sería mas bien algo así:
Cita: cmd.Parameters("@id_serv").Value = lst_reg_serv.DataKeys[e.Item.ItemIndex]
Checa las 2 opciones, Salu2