
¿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 SERVICIOS
Function GenerarCodigoServicios()
Dim strCodigo As String = ""
Dim intTotal As Integer = 1
Try
Cmd = New SqlCommand("SELECT COUNT(*) AS TotalRegistros FROM SERVICIOS", Conn)
dr = Cmd.ExecuteReader
If dr.Read Then
intTotal = CInt(dr.Item("TotalRegistros") + 1)
End If
dr.Close()
If intTotal < 10 Then
strCodigo = "S-0000" + intTotal.ToString
ElseIf intTotal < 100 Then
strCodigo = "S-000" + intTotal.ToString
ElseIf intTotal < 1000 Then
strCodigo = "S-00" + intTotal.ToString
ElseIf intTotal < 10000 Then
strCodigo = "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