none
contador en vb.net

    Pregunta

  • Hola a todos gracias de antemano por la ayuda que me puedan brindar lo que quiero hacer es lo siguiente:

    Tengo una caja de texto y en ella tengo que mostrar un numero consecutivo es de decir que a lo que de clic en nuevo me aparesca 00001 y despues de guardar y le de una vez mas nuevo salga el 0002 y asi sucesivamente pero que a lo que cierre la aplicacion y la ejecute de nuevo me salga el 00003 es decir no se pierda la secuencia y eso es lo que no tengo ni idea de como hacer si me puedes ayudar te lo agradesco...
     
    Saludos.
    jueves, 14 de febrero de 2008 19:25

Todas las respuestas

  • hay muchas formas de hacerlo:

    elegantes

    dificiles

    faciles etc....

     

     

    en tu caso para que no te lies...

     

    guarda un xml con el contador, cuando abras la forma lees  el xml nuevamente... y asignas el valor al tetxbox...

     

    asegurate de guardar en el xml cada vez que la forma es cerrada... y de leerlo cada vez que es abierta...

    jueves, 14 de febrero de 2008 19:43
  • Hola hay un problema es que no se nada de xml si tuvieras el codigo de un contador en vb.net te lo agradesco.

     

    jueves, 14 de febrero de 2008 19:47
  • ... no tengo el entorno aquí, asi es que lo tuve que hacer aquí en el foro... puede tener algun error... pero en lineas generales es una solucion... poco elegante. Es un servicio web.

     

     

    Code Snippet

    <webmethod()>_

    public function get_numero() as integer

    dim ds as new dataset

    if not io.file.exist("nombrearchivo.xml") then

    dim dt as new data.datatable

    dt.columns.add("Numero",gettype(integer))

    dim dr as data.datarow = dt.newrow

    dr.item("Numero") = 0

    dt.rows.add(dr)

    ds.tables.add(dt)

     

    else

    ds.readxml("nombrearchivo.xml")

    end if

    return  ds.tables(0).rows(0).item("Numero")

     

    end function

     

    <webmethod()>_

    public function add_numero() as boolean

    dim ds as new dataset

    if not io.file.exist("nombrearchivo.xml") then

    dim dt as new data.datatable

    dt.columns.add("Numero",gettype(integer))

    dim dr as data.datarow = dt.newrow

    dr.item("Numero") = 0

    dt.rows.add(dr)

    ds.tables.add(dt)

     

    else

    ds.readxml("nombrearchivo.xml")

    end if

    ds.tables(0).rows(0).item("Numero") =ds.tables(0).rows(0).item("Numero") +1

    ds.writexml("nombrearchivo.xml")

    return true

    end function

     

     

    jueves, 14 de febrero de 2008 20:21
  • Para escribir y leer el archivo simplemente utiliza XmlWriter y XmlReader...
    jueves, 14 de febrero de 2008 20:35
  • Una sola pregunta esto de xml la verdad es que nunca lo he manejado pero lo que estopy haciendo es una aplicacion de escritorio este codigo que me pasaste es para escritorio o web.

     

    jueves, 14 de febrero de 2008 20:49
  • mmm, es que una vez lo hice para un servicio web y por eso la inercia... si le quitas el <webmethod> puedes copiarlos a una clase, ponerlo como funciones shared y te sirve para winforms y para webforms.

     

    jueves, 14 de febrero de 2008 20:58
  •  

    ejemplo:

     

    Code Snippet

    using System;

    using System.Xml;

    using System.IO;

    namespace XMLReaderApp

    {

    class Program

    {

    static void Main(string[] args)

    {

    int contador = 500;

    XmlTextWriter xw = new XmlTextWriter("prueba", Encoding.UTF8);

    xw.WriteStartElement("Contador");

    xw.WriteValue(contador);

    xw.WriteEndElement();

    xw.Close();

    XmlTextReader xr = new XmlTextReader("prueba");

    xr.Read();

    Console.WriteLine(xr.ReadElementContentAsInt().ToString());

    xr.Close();

    Console.ReadLine();

    }

    }

    }

     

     

    jueves, 14 de febrero de 2008 21:11
  •  Fernando Cisterna Escribió:

    ... no tengo el entorno aquí, asi es que lo tuve que hacer aquí en el foro... puede tener algun error... pero en lineas generales es una solucion... poco elegante. Es un servicio web.

     

     

    Code Snippet

    <webmethod()>_

    public function get_numero() as integer

    dim ds as new dataset

    if not io.file.exist("nombrearchivo.xml") then

    dim dt as new data.datatable

    dt.columns.add("Numero",gettype(integer))

    dim dr as data.datarow = dt.newrow

    dr.item("Numero") = 0

    dt.rows.add(dr)

    ds.tables.add(dt)

     

    else

    ds.readxml("nombrearchivo.xml")

    end if

    return  ds.tables(0).rows(0).item("Numero")

     

    end function

     

    <webmethod()>_

    public function add_numero() as boolean

    dim ds as new dataset

    if not io.file.exist("nombrearchivo.xml") then

    dim dt as new data.datatable

    dt.columns.add("Numero",gettype(integer))

    dim dr as data.datarow = dt.newrow

    dr.item("Numero") = 0

    dt.rows.add(dr)

    ds.tables.add(dt)

     

    else

    ds.readxml("nombrearchivo.xml")

    end if

    ds.tables(0).rows(0).item("Numero") =ds.tables(0).rows(0).item("Numero") +1

    ds.writexml("nombrearchivo.xml")

    return true

    end function

     

     

    Si me puedes enviar enviar el ejemplo de como lo usaste es que yo tampoco se nada de xml y tengo el mismo problema de hacer un cantador de esta forma: 0001, 0002, 0003,....,0010,.....etc. y me urge colocarselo
    miércoles, 18 de junio de 2008 13:50
  • :-)

    Hola,

     

    Tal vez lo más sencillo sea aprovechar las opciones de configuración (settings) y crear una variable llamada 'Counter'.

     

    1 - En las propiedades del proyecto crea una variable llamada Counter, de tipo Integer y de ámbito user.

    2 - Coloca el siguiente código en el formulario (con un botón y un label):

     

    Code Snippet

        Private Sub Form1_Load(ByVal sender As System.Object, _

          ByVal e As System.EventArgs) Handles MyBase.Load
            RefreshCounter()
        End Sub


        Private Sub Button1_Click(ByVal sender As System.Object, _

          ByVal e As System.EventArgs) Handles Button1.Click
            My.Settings.Counter += 1
            RefreshCounter()
        End Sub

        Private Sub RefreshCounter()
            Label1.Text = My.Settings.Counter.ToString("00000")
        End Sub

     

     

    Y ya está. En la carga del  formulario (Load) se actualiza el valor del Label (formateándolo con ceros), y en el click del botón se incrementa el valor de la variable.

     

    Y cómo se guarda? Se hace automáticamente. Por defecto VS guarda los cambios realizados en las settings de usuario (no de aplicación) al cerrar la aplicación.

     

    Saludos,

    lunes, 30 de junio de 2008 9:02
  • gracias por tu colaboracion `

    PERO LA VERDAD AUN NO ME QUIERE DAR LO QUE NECESITO ES UN CONTADOR DESDE UNA BASE DE DATOS ES DECIR QUE SI EL CAMPO EN LA BASE DE DATOS ESTA EN 0000 ME LO AUMENTE AL CREAR UN NUEVO CAMPO QUE ME QUEDE 0002

     

    GRACIAS

    ESPERO SU PRONTA RESPUESTA

    jueves, 30 de septiembre de 2010 21:17
  • Para escribir y leer el archivo simplemente utiliza XmlWriter y XmlReader...

    hola juan carlor,temgo un pequeño problema necesito programar un contador de visitas  en un sitio web pero en visual basic.net 2008 me podrias ayudar


    nini yohana bermuidez
    viernes, 27 de enero de 2012 22:19