1
Visual Basic .NET / C# / Re:contador en vb.NET
« en: Octubre 18, 2016, 08:50:41 am »hola , no me funciono el código, lo q intento hacer, que el usuario tenga que escribir todos los demas registros, pero no el CODIGO, pero que siempre en la Base de Datos se guarde..
como seria el codigo, para que el primer Repuestos de Automóvil que entre el Codigo se "CODIGO-100" y luego se guarde y cuando ingrese otro sea este "CODIGO-101" y asi
si quieres te doy un ejemplo con un programa pequeño en vb 6.0 , de lo que yo necesito en .NET
Gracias por tú ayuda
Muy buenos días !!! De nuevo por aquí...
A verrrr... El código que te pasé:
Muy buenos días a todos !!!
ale_xi, un pequeño "detallito" con la consulta para efectuar el conteo:Código: (VB) [Seleccionar]Dim Sql As String = "Select count(CODIGO) from REPUESTOS"
Debería ser así:Código: (VB) [Seleccionar]Dim Sql As String = "Select Count(CODIGO) As Total From REPUESTOS"
Ahora si necesitas hacer uso de ese 'contador', porque necesitas el nro, cantidad o total de algo, puedes hacer esto:Código: (VB) [Seleccionar]Dim Sql As String = "Select Count(CODIGO) As Total From REPUESTOS"
Dim _total As Integer = 0
Dim Cmd As New FbCommand(Sql, Base)
'//
_total = CType(FbCmd.ExecuteScalar, Integer)
En la variable _total, almacenas el valor del contador Total que está dentro de la consulta...
Te reitero, la instrucción COUNT() lo que hace es, 'contar' el número de registros que tienes en una tabla determinada, sin importar los valores que tengas almacenados en cada uno de ellos... A través de la variable _total.
La instrucción MAX(), te proporciona el valor más alto del campo que estés evaluando (en tu caso, Codigo), siempre y cuando dicho campo sea numérico, y creo que como lo estás planteando, tu campo debe ser del tipo String, por lo tanto la instrucción MAX() no te va a servir de nada (sino, que me corrija mi gran amigo y Gurú de FirebirdSQL, el gran Ivan -YAcosta-, que él si sabe de este tema...).
En mi humilde opinión, lo que haría:
1.- Contar los registros.
2.- Sumaría +1 al valor de es contador.
3.- Luego asignaría más o menos así: "CODIGO-" + incremento.ToString("000")
Código: (VB) [Seleccionar]
Dim Sql As String = "Select Count(CODIGO) As Total From REPUESTOS"
Dim _total As Integer = 0
Dim Cmd As New FbCommand(Sql, Base)
Dim NuevoCodigo As String = "CODIGO-"
'//
_total = CType(FbCmd.ExecuteScalar, Integer)
NuevoCodigo = NuevoCodigo & _total.ToString("000")Si existen en la Tabla "REPUESTOS" 35 registros (por ejemplo)...
El resultado de NuevoCodigo sería: "CODIGO-036" [por eso coloqué .ToString("000"), para formatear la salida]
Espero que esta si te pueda servir de algo...!!!
Saludos !!!
PD: Saludos, Ivan !!! Hermano !!!
un abrazo !!!
Manuel F. Borrego Sterling

Barcelona, Edo. Anzoátegui. Venezuela.
[Mientras nos permitan seguir comunicándonos...]
YAcosta y ssccaann43 !!!
!!!), se actualizó por si misma a Windows 10 (porque de paso, la tenía configurada, como ya saben, para que las actualizaciones fuesen notificadas más no instaladas hasta que autorizase... Pero lo hizo sola y bueno...!!!

, vagando por ahí, y no he podido dar con la solución !!!
ese, y no daba para atras ni para adelante !!! pero el de tu primera propuesta: