none
Recorrer tabla y modificar registros RRS feed

  • Pregunta

  • Hola amig@s. Necesito una ayudita... Tengo una base de datos SQL SERVER y tengo que modificar una tabla recorriéndola fila a fila y cambiando cosas cuando se cumplen unos criterios. 

    Esto tengo que hacerlo en Visual Studio 2019 obligatoriamente. ¿Podríais indicarme cual es el procedimiento más sencillo para cargar la tabla, ir recorriendo los registros y modificando cada uno?

    Leer Tabla

    Situarse en el primer registro

      Mientras no sea fin de tabla

          Si (criterio = true) entonces (modifico un campo)

    End Mientras

      

    MUCHAS GRACIAS POR ADELANTADO!

    jueves, 13 de febrero de 2020 12:24

Respuestas

Todas las respuestas

  • Deleted
    jueves, 13 de febrero de 2020 12:46
  • Gracias por la respuesta... ya sé que con UPDATE lo hago a la carrera, pero tengo obligatoriamente que hacerlo por código en Visual Studio.
    jueves, 13 de febrero de 2020 12:58
  • Hola JotaQ:

    Visual Studio es un entorno de desarrollo, pero tú puedes desarrollar en múltiples lenguajes y con diferentes tecnologías de acceso a la base de datos.

    Te expongo un ejemplo con la sentencia update en c# con Ado.Net.

    public void ejecutarConsulta()
    {
        string connectionString = "Data Source=(local);Initial Catalog=tuBase;Integrated Security=true";
    
        string queryString =
            @"
            UPDATE tabla  set columna= 1
    where @parametro = columna2;";
    
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            int parametroEjemplo = 1;
            SqlCommand command = new SqlCommand(queryString, connection);
            command.Parameters.AddWithValue("@parametro", parametroEjemplo);
    
            try
            {
                connection.Open();
                int result = command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }

    Ejemplos de código con ADO.NET

    https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/ado-net-code-examples

    jueves, 13 de febrero de 2020 15:03
  • Muchas gracias por la respuesta. Necesito hacer el proceso en Visual Basic. Me han comentado que la manera de hacerlo es con un RECORDSET, no sé si será la mejor manera. 
    viernes, 14 de febrero de 2020 12:47
  • Hola JotaQ:

    No es la mejora manera, por un motivo simple. Multiplica el número de registros que tienes por 35 millones.

    ¿Quién gestionará más rápido y eficiente una update, el motor SQL o un programa cliente, que tenga que realizar lecturas para poder modificar?

    Mi consejo es que utilices ADO.Net y le mandes la update al motor SQL. Este la ejecuta y terminaste.

    En el enlace que te he pasado, también están los ejemplos para hacerlo en VB.NET

    viernes, 14 de febrero de 2020 14:00
  • Gracias Pablo. Me queda claro el tema. Solo una pregunta más...

    Imagina que tenemos que hacer algo con los registros de una tabla y tenemos que hacerlo recorriéndola de principio a fin con un WHILE y a través de código visual basic... me dices que la opción RECORDSET no es la mejor, ¿Cuál sería lo más adecuando entonces?  

    Gracias miles!

    Un cordial saludo

    domingo, 16 de febrero de 2020 10:58
  • Hola JotaQ:

    Utiliza un SqlDataReader

    https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/retrieving-data-using-a-datareader

    Tienes el ejemplo en c# y Vb.net

    • Marcado como respuesta JotaQ lunes, 17 de febrero de 2020 7:54
    domingo, 16 de febrero de 2020 16:49
  • Javi gracias por la respuesta... en el enlace que me pones solamente veo ejemplos en c# no veo el código en vb.net

    Saludos!

    lunes, 17 de febrero de 2020 10:30
  • Deleted
    lunes, 17 de febrero de 2020 12:00