Foros del Web » Programación para mayores de 30 ;) » .NET »

Crear consecutivo carnet

Estas en el tema de Crear consecutivo carnet en el foro de .NET en Foros del Web. Hola, Como creo un codigo de carnet que este compuesto por el id del usuario+la fecha del sistema+consecutivo? por ejemplo: 128102009001, 128102009002, 128102009003, etc??? Eso ...
  #1 (permalink)  
Antiguo 29/10/2009, 08:31
 
Fecha de Ingreso: noviembre-2004
Ubicación: CARTAGENA
Mensajes: 50
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Crear consecutivo carnet

Hola, Como creo un codigo de carnet que este compuesto por el id del usuario+la fecha del sistema+consecutivo? por ejemplo: 128102009001, 128102009002, 128102009003, etc??? Eso con vb 2008 y con la bd creada ahi mismo.
  #2 (permalink)  
Antiguo 29/10/2009, 09:42
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Crear consecutivo carnet

El Id del usuario lo traes de la base de datos:
Un simple Select IdUsuario From Tabla_Usuario Where IdUsuario = @Usuario
El correlativo puede ser con un max, supongo que tienes una tabla carnet, sería algo así:
Select Max(IdCarnet) From Tabla_Carnet
Teniendo estos dos ya es cuestión de concatenar nada más:
Código vb.net:
Ver original
  1. Dim carne As New StringBuilder()
  2.         carne.Append("IdUsuario") 'Reemplazar por el id que devuelva la BD.
  3.         carne.Append(Date.Now.ToShortDateString.Replace("/", "")) 'Elimina barras
  4.         carne.Append("001") 'Reemplazar por lo que devuelva la consulta con el Max
  5.         MessageBox.Show(carne.ToString())

Espero te de una idea
  #3 (permalink)  
Antiguo 30/10/2009, 16:43
 
Fecha de Ingreso: noviembre-2004
Ubicación: CARTAGENA
Mensajes: 50
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Crear consecutivo carnet

Gracias, voy a probar
  #4 (permalink)  
Antiguo 30/10/2009, 16:52
 
Fecha de Ingreso: noviembre-2004
Ubicación: CARTAGENA
Mensajes: 50
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Crear consecutivo carnet

Es posible generar el consecutivo del carnet directamente en la bd, es decir en el campo carnet???
  #5 (permalink)  
Antiguo 30/10/2009, 17:07
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Crear consecutivo carnet

si pero depende el tipo de bd, si fuera sql server tu DBMS usa las propiedades Identity de tu campo y que sea un incremental empezando en x numero.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #6 (permalink)  
Antiguo 30/10/2009, 17:10
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Crear consecutivo carnet

Si también, la lógica sería la misma:
Código sql:
Ver original
  1. DECLARE @fecha datetime
  2. SET @fecha = getdate()
  3. SELECT 'Id'+ REPLACE(CONVERT(VARCHAR(10),@fecha,103),'/','')+'001'

Esto te devolvería: "Id30102009001"

__________________
Eduardo Peredo
Wigoin
  #7 (permalink)  
Antiguo 01/11/2009, 07:08
 
Fecha de Ingreso: noviembre-2004
Ubicación: CARTAGENA
Mensajes: 50
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Crear consecutivo carnet

Ok. Probe, pero no me almacena el id geenrado en el campo carnet de cada uno de los usuarios, ademas el 001 permancece estatico. Eso directamente en la b que es sql server 2005. Por otra parte, si kiero generar los carnets al momento de me bota un error, dice que los campos no pueden ser nulos
  #8 (permalink)  
Antiguo 02/11/2009, 07:33
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Crear consecutivo carnet

Lo que yo te mostré era la forma para generar el código, luego tendrías que hacer el insert into a tu tabla y como codigo de carnet le pasas ese valor.
Eso de que el 001 permanece estatico pues si, pero se supone que tu debes realizar una consulta tipo max a la tabla y recuperar el último valor para concatenarlo al código, no lo puse porque me pareció que se sobreentendía.
Código sql:
Ver original
  1. DECLARE @cod_carnet VARCHAR(20)
  2. DECLARE @fecha datetime
  3. SET @fecha = getdate()
  4. SET @cod_carnet = 'Id'+ REPLACE(CONVERT(VARCHAR(10),@fecha,103),'/','')+'001'
  5. --
  6. INSERT INTO tutabla(codigo_carnet, campo1, campo2, etc) VALUES(@cod_carnet, valor1, valor2, etc)

Saludos.
__________________
Eduardo Peredo
Wigoin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:33.