
¿Cómo generar un ID personalizado en Visual Studio (visual Basic ) y SQL Server?
Publicado por Richard (2 intervenciones) el 23/11/2021 05:28:02
¿Cómo sería una función que me genere un ID personalizado?
Ejemplo: En una tabla que se llame Servicios, con los campos ;
Id_Servicio Dsc_Servicio
S-00001 Oftalmología
S-00002 Cirugía
Que cada vez que requiera almacenar un servicio nuevo, me genere un ID_Servicio nuevo.
Así mismo que si se eliminan registros intermedios en la tabla, no se genere un ID duplicado.
La siguiente función efectúa la generación del ID, pero me genera también ID's duplicados: ¿Cómo puedo evitar que genere los ID's duplicados cuando se eliminan ID's intermedios en la tabla?

Ejemplo: En una tabla que se llame Servicios, con los campos ;
Id_Servicio Dsc_Servicio
S-00001 Oftalmología
S-00002 Cirugía
Que cada vez que requiera almacenar un servicio nuevo, me genere un ID_Servicio nuevo.
Así mismo que si se eliminan registros intermedios en la tabla, no se genere un ID duplicado.
La siguiente función efectúa la generación del ID, pero me genera también ID's duplicados: ¿Cómo puedo evitar que genere los ID's duplicados cuando se eliminan ID's intermedios en la tabla?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'Función genera código automático para la tabla SERVICIOSFunction GenerarCodigoServicios()
Dim strCodigo As String = ""
Dim intTotal As Integer = 1Try
Cmd = New SqlCommand("SELECT COUNT(*) AS TotalRegistros FROM SERVICIOS", Conn)
dr = Cmd.ExecuteReader
If dr.Read ThenintTotal = CInt(dr.Item("TotalRegistros") + 1)
End If
dr.Close()
If intTotal < 10 ThenstrCodigo = "S-0000" + intTotal.ToString
ElseIf intTotal < 100 ThenstrCodigo = "S-000" + intTotal.ToString
ElseIf intTotal < 1000 ThenstrCodigo = "S-00" + intTotal.ToString
ElseIf intTotal < 10000 ThenstrCodigo = "S-0" + intTotal.ToString
End If
Catch ex As Exception
MessageBox.Show("Error al generar el código de SERVICIOS: " + ex.ToString)
End Try
Return strCodigo
End Function
Valora esta pregunta


0

