Cómo generar un id consecutivo?

Hice un formulario web donde tengo un cuadro de texto en el que quiero que aparezca el resultado de una consulta para obtener el valor máximo de una columna en mi tabla Consecutivos y sumarle 1. El cuadro de texto lo utilizaré posteriormente para generar el ID de mis registros. El código que he logrado es el siguiente, pero no funciona y la verdad es que al ser principiante no tengo ni la menor idea por donde empezar.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load, txtIDConsec.Load
        Dim sql = "SELECT max(IdConsec) From Consecutivos"
        txtIDConsec.Text = sql + 1
    End Sub
End Class

2 respuestas

Respuesta
1

En el ejemplo que pones, estas sumando un texto más un valor numérico, perono estas consultadno la base de datos para extraer el valor máximo de tu tabla.

Adjunto ejemplo en asp.net c#, es la misma lógica

        public string GetIdRowMaxId() {

            string GetIdRowMaxId="";

            MyConsulta = @"select Max(convert(int,Micampo)) from CatOrdenesDeCompraProveedoresHeader";

            closeConection();

            consultaGenericaCommand = new SqlCommand(MyConsulta, conection);
            openConection();
            GetIdRowMaxId = Convert.ToString(consultaGenericaCommand.ExecuteScalar()); <- Mi resultado

            if (capaNegocio.validarCamposVaciosNumerico(GetIdRowMaxId)  == "")
            {
                GetIdRowMaxId = "1";
            }
            else {
                GetIdRowMaxId = Convert.ToString(Convert.ToDouble(GetIdRowMaxId) + 1);
            }

            closeConection();

            return GetIdRowMaxId;
        }

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

Respuesta
1

Te recomiendo para generar números consecutivos, hacerlo con un objeto llamado secuencia o hacer la columna de la BD autoincremental.

Si es la primera opción, con solo llamar a la secuencia ella devolverá el próximo valor al que tiene. Ese valor lo puedes insertar directo en la bd si lo deseas.

Si es la segunda opción cada vez que hagas un insert, la bd sola creara el próximo valor en la columna incremental.

Cualquier duda lo vemos.

También puedes hacer otra cosa. En el mismo query al hacer el max (columna) le haces el add del valor que quieras. Lo que te responda el select sera tu max de la columna incrementado en 1.

¡Gracias! Ya quedó ahora el problema es publicarla :|

¿Publicarla?

si, publicar la aplicación en mi iis

Perdona la tardanza, la publicación es sencilla. Puedes hacerlo de muchas formas, pero con solo crear un pool de aplicación en el IIS y un sitio web seria suficiente. Abre el iis y dentro del sitio agrega una nueva aplicación web y que este apuntando al código que hiciste.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas