none
Mostrar un id en un textbox con c# (sql server 2008) RRS feed

  • Pregunta

  • Hola buenas noches necesito hacer algunas consultas no se si me pueden ayudar....

    estoy desarrollando un formulario de orden de compra, estoy trabajando con sql server , c# y asp.net .....

    en la orden de compra tengo una tabla en sql server que tiene como id numero_oc este campo esta como llave primaria ....

    lo que necesito que en mi formulario tengo un boton y un textbox y al precionar el boton me muestra el siguiente registro que se va crear en este caso, me muestre el numero siguiente de orden de compra que se creara en la tabla dbo.orden....

    osea si no ahy ningun registro aun en la bd el siguiente numero de orden de compra sera 1 y despues el 2 , 3,4 , etc........estos numeros que aun no estan creados necesito mostrarlos en un textbox como mencionaba antes...

    de ya muchas gracias...

    jueves, 3 de enero de 2013 1:41

Respuestas

  • Podria obtener el numero de siguiente de esta forma:

    SELECT MAX(numero_id)+1 as Contador FROM tb_tabla

    Luego el resultado de la consulta almacenarla en un datatable y a tu textbox le diras que sea igual a la primera fila del datatable de esta forma:

    textbox1.Text = dt.Rows(0)("Contador")

    Y alli obtendras el numero consecutivo.

    jueves, 3 de enero de 2013 14:13
  • lo que necesito que en mi formulario tengo un boton y un textbox y al precionar el boton me muestra el siguiente registro que se va crear en este caso, me muestre el numero siguiente de orden de compra que se creara en la tabla dbo.orden

    una consulta que no has mencionado la key de la tabla es identity, o sea autonumerico ? lo pregunto porquesi es identity el valor de la key se genera al momento de insertar el registro y no antes

    sino es identity podrias usar la funcionalidad

    [ADO.NET] Parte 5 - Ejemplos Simples Operaciones CRUD

    del metodo MaxId() para tomar el ultimo id de la tabla

    pero ojo porque aunque recuperes ese id si estan varios usuarios accediendo a la misma db puede que le generes un mismo id a dos usuarios al mismo tiempo

    algo que recomendaria es que no optes por el camino de mostrar el id antes al usuario, sino que deja que ingrese la info de la orden de compra y que confirme la operacion para en ese momento generar el id y luego como resultado de la operacion satisfactoria le muestras el id generado

    o sea que el id se genere cuando terminas la operacion mostrandolo y no antes como quieres hacerlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 3 de enero de 2013 3:19

Todas las respuestas

  • Si su base de datos/aplicación es multiusuario, lo que usted desea hacer no es posible porque únicamente puede asegurarse un número de identificación cuando se ha creado el registro.  En otras palabras, es imposible garantizar al usuario final que el número mostrado será el ID del nuevo registro a menos que se realice la inserción por adelantado.

    Jose R. MCP
    Code Samples

    jueves, 3 de enero de 2013 1:45
    Moderador
  • lo que necesito que en mi formulario tengo un boton y un textbox y al precionar el boton me muestra el siguiente registro que se va crear en este caso, me muestre el numero siguiente de orden de compra que se creara en la tabla dbo.orden

    una consulta que no has mencionado la key de la tabla es identity, o sea autonumerico ? lo pregunto porquesi es identity el valor de la key se genera al momento de insertar el registro y no antes

    sino es identity podrias usar la funcionalidad

    [ADO.NET] Parte 5 - Ejemplos Simples Operaciones CRUD

    del metodo MaxId() para tomar el ultimo id de la tabla

    pero ojo porque aunque recuperes ese id si estan varios usuarios accediendo a la misma db puede que le generes un mismo id a dos usuarios al mismo tiempo

    algo que recomendaria es que no optes por el camino de mostrar el id antes al usuario, sino que deja que ingrese la info de la orden de compra y que confirme la operacion para en ese momento generar el id y luego como resultado de la operacion satisfactoria le muestras el id generado

    o sea que el id se genere cuando terminas la operacion mostrandolo y no antes como quieres hacerlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 3 de enero de 2013 3:19
  • Podria obtener el numero de siguiente de esta forma:

    SELECT MAX(numero_id)+1 as Contador FROM tb_tabla

    Luego el resultado de la consulta almacenarla en un datatable y a tu textbox le diras que sea igual a la primera fila del datatable de esta forma:

    textbox1.Text = dt.Rows(0)("Contador")

    Y alli obtendras el numero consecutivo.

    jueves, 3 de enero de 2013 14:13