Citar
Caso I
Dim a As Integer = 11
Dim cod As String = "0000".Substring(0, 4 - a.ToString.Length) & a
MsgBox(cod)
Dim a As Integer = 11
Dim cod As String = "0000".Substring(0, 4 - a.ToString.Length) & a
MsgBox(cod)
Citar
Caso II
dim da as sqldataadapter
dim con as sqlconnection
dim dtb as data.datatable
function generacodigo() as string
da = new sqldataadapter("select count(*)+1 as [num] from factura",con)
dtb = new data.datatable
da.fill(dtb)
dim num as integer = dtb.rows(0)("num").tostring
dim cod as string = "0000".substring(0, 4 - num.tostring.length) & num
return cod
end function
SUb Form_Load (...)
msgbox generacodigo
end sub
dim da as sqldataadapter
dim con as sqlconnection
dim dtb as data.datatable
function generacodigo() as string
da = new sqldataadapter("select count(*)+1 as [num] from factura",con)
dtb = new data.datatable
da.fill(dtb)
dim num as integer = dtb.rows(0)("num").tostring
dim cod as string = "0000".substring(0, 4 - num.tostring.length) & num
return cod
end function
SUb Form_Load (...)
msgbox generacodigo
end sub
Citar
Caso III
dim da as sqldataadapter
dim con as sqlconnection
dim dtb as data.datatable
function generacodigo() as string
da = new sqldataadapter("select * from factura",con)
dtb = new data.datatable
da.fill(dtb)
dim num as integer = dtb.rows.count + 1
dim cod as string = "0000".substring(0, 4 - num.tostring.length) & num
return cod
end function
SUb Form_Load (...)
msgbox generacodigo
end sub
dim da as sqldataadapter
dim con as sqlconnection
dim dtb as data.datatable
function generacodigo() as string
da = new sqldataadapter("select * from factura",con)
dtb = new data.datatable
da.fill(dtb)
dim num as integer = dtb.rows.count + 1
dim cod as string = "0000".substring(0, 4 - num.tostring.length) & num
return cod
end function
SUb Form_Load (...)
msgbox generacodigo
end sub
PD: Recordar que el 4 de color rojo, representa el tamaño del codigo, en este caso el codigo es de 4 digitos, si fuese mayor o menor se debera cambiar ese valor.
PD: Recordar que puedes poner digitos alfanumericos, podria ser FA0001, y si ese fuese el caso el valor que se indica de color Rojo, tendria que ser del tamaño de tu cadena.
PD: Recordar tambien que la consulta puede cambiar, segun lo que desees, mientras que en el primer caso cuentas cuantos registros hay para luego filtrar unicamente el campo num(dtb.rows(0)("num").tostring), en el segundo muestras todos para luego contarlos con el dtb.rows.count. Particularmente prefiero usar la primera opcion.
Debido a que es un ejemplo deberas configurar tu cadena de conexion para la variable con, la declaracion e instanciar las mismas. Tampoco olvides agregar la libreria (imports System.Data.SqlClient).
Saludos, espero que te sirva.