none
Números consecutivos manualmente que no se pueda saltar la consecutividad ni repetir. RRS feed

  • Pregunta

  • Buenas noches, me gustaría que yo pudiera generar desde el textbox números consecutivos manualmente, por ejemplo, 1, 2, 3 , 4, 5 pero que cuando yo me salte la consecutividad o la repita me salga un error, como le puedo hacer? sobre todo que me marque el error cuando yo me salte la consecutividad, se que lo puedo ser desde la base de datos en autincremente, pero a mi me gustaría manual.


    jueves, 23 de enero de 2020 7:09

Respuestas

  • hola

    Si el numero de Folio lo tienes como campo en la db podrias generarlo de forma automatica usando el MAX() con un SELECT a la tabla

    algo como ser

    private static int MaxId()
    {
        string sql = @"SELECT MAX(NroFolio)
                          FROM NombreTabla";
     
    	string connstring = ConfigurationManager.ConnectionStrings["default"].ToString();
        using (SqlConnection conn = new SqlConnection(connstring))
        {
            conn.Open();
    		
            SqlCommand command = new SqlCommand(sql, conn);
            return Convert.ToInt32(command.ExecuteScalar());
        }
    }

    entonces no te saltes ningun numero ya que al crear un nuevo registro ese valor lo calculas automaticamente y lo pones en ese textbox que sea readonly

    Quizas si necesites un boton de "Nuevo" para que agregue este valor en el textbox

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 23 de enero de 2020 15:02
  • Si así es de echo así lo tengo, solo que  ami me gustaría que se genere manualmente, o sea tenerlo que escribir yo manualmente, y que si el registro va en 2 y le pongo 4 me aparezca un mensaje de error ya que va el 3 
    jueves, 23 de enero de 2020 16:24
  • >>solo que  ami me gustaría que se genere manualmente, o sea tenerlo que escribir yo manualmente

    porque? eso no esta bueno si quieres mantener una secuencia

    todo lo que controles para evitar problemas es siempre mejor generarlo a dejarlo libre, mas aun si es una key de la tabla

    Salvo que separes ese campo libre al usuario que represente un codigo y por otro lado tengas la key secuencial que se IDENTITY, asi se incrementa al insertar el nuevo registro

    >>si el registro va en 2 y le pongo 4 me aparezca un mensaje de error ya que va el 3

    y si el registro va en dos y pones 1, o pones 10mil, o pones cualquier cosa

    entre validar el ingreso y  generarlo automaticamente, cuando quieres que se genere una secuancialidad, sigue generandolo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de enero de 2020 17:19

Todas las respuestas

  • hola

    Si el numero de Folio lo tienes como campo en la db podrias generarlo de forma automatica usando el MAX() con un SELECT a la tabla

    algo como ser

    private static int MaxId()
    {
        string sql = @"SELECT MAX(NroFolio)
                          FROM NombreTabla";
     
    	string connstring = ConfigurationManager.ConnectionStrings["default"].ToString();
        using (SqlConnection conn = new SqlConnection(connstring))
        {
            conn.Open();
    		
            SqlCommand command = new SqlCommand(sql, conn);
            return Convert.ToInt32(command.ExecuteScalar());
        }
    }

    entonces no te saltes ningun numero ya que al crear un nuevo registro ese valor lo calculas automaticamente y lo pones en ese textbox que sea readonly

    Quizas si necesites un boton de "Nuevo" para que agregue este valor en el textbox

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 23 de enero de 2020 15:02
  • Si así es de echo así lo tengo, solo que  ami me gustaría que se genere manualmente, o sea tenerlo que escribir yo manualmente, y que si el registro va en 2 y le pongo 4 me aparezca un mensaje de error ya que va el 3 
    jueves, 23 de enero de 2020 16:24
  • >>solo que  ami me gustaría que se genere manualmente, o sea tenerlo que escribir yo manualmente

    porque? eso no esta bueno si quieres mantener una secuencia

    todo lo que controles para evitar problemas es siempre mejor generarlo a dejarlo libre, mas aun si es una key de la tabla

    Salvo que separes ese campo libre al usuario que represente un codigo y por otro lado tengas la key secuencial que se IDENTITY, asi se incrementa al insertar el nuevo registro

    >>si el registro va en 2 y le pongo 4 me aparezca un mensaje de error ya que va el 3

    y si el registro va en dos y pones 1, o pones 10mil, o pones cualquier cosa

    entre validar el ingreso y  generarlo automaticamente, cuando quieres que se genere una secuancialidad, sigue generandolo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de enero de 2020 17:19