Ayuda con arraylist...Vb.net ???

Iniciado por ronald hisp, 18 Diciembre 2009, 02:31 AM

0 Miembros y 1 Visitante están viendo este tema.

ronald hisp

bueno hice un sistema que te pide.
1.- curso
2.- nota
3.- fecha

todo eso lo guardo en un arraylist

 

   Private curso As String
   Private nota As Double
   Private fecha As Date

   Public texto As String = ""

   Public array_exam As New ArrayList

'
  Sub insertar()
       texto += "Curso:" & curso & vbCrLf & "Nota=" & nota & vbCrLf & " fecha="
                    &fecha & vbCrLf & vbCrLf
           array_exam.Add(texto)
   End Sub
Sub mostrar()
       For i = 0 To array_exam.Count() - 1
           texto += array_exam.Item(i)
       Next
End Sub



hasta ahora no ay problemas:

1.-buscar:   pero ahora quiero buscarlo por cursos. nose me ocurre como.  :huh:
2.-modificar: antes busco el curso y sobreescribo el curso y sus demas datos y lo guardo y muestro...   :huh:

esas dos son mis dudas no se me ocurre una solucion ... espero que me puedan sacar de este predicamento....

antemano Gracias por sus respuestas..
 :D


Keyen Night

#1
Bueno para que se te sea más facil te recomiendo hacer una clase, como no tenia nada que hacer ;D te la hice:
Código (vbnet) [Seleccionar]
Public Class Exam

   Private _curso As String
   Private _nota As Double
   Private _fecha As Date

   Public Sub New(ByVal Curso As String, ByVal Nota As Double, ByVal Fecha As Date)
       _curso = Curso
       _fecha = Fecha
       _nota = Nota
   End Sub

   Public Overrides Function ToString() As String
   Return "Curso: " & _curso & vbCrLf & "Nota:" & _nota & vbCrLf & "fecha:" & _fecha & vbCrLf & vbCrLf
   End Function

   Public Property Curso() As String
       Get
           Return _curso
       End Get
       Set(ByVal _Enter As String)
           _curso = _Enter
       End Set
   End Property

   Public Property Nota() As Double
       Get
           Return _nota
       End Get
       Set(ByVal _Enter As Double)
           _nota = _Enter
       End Set
   End Property

   Public Property Fecha() As Date
       Get
           Return _fecha
       End Get
       Set(ByVal _Enter As Date)
           _fecha = _Enter
       End Set
   End Property

End Class


Bueno con lo otro es más facil como te dije anteriormente al implementar una clase
Código (vbnet) [Seleccionar]

''CREAEMOS UNA LISTA DE EXAMENES
       Dim x As New List(Of Exam)

''AÑADIMOS 3 EXAMENES CON SU RESPECTIVA INFORMACIÓN
       x.Add(New Exam("Curso 1", 5.2, Now))
       x.Add(New Exam("Curso 2", 7.5, Now))
       x.Add(New Exam("Curso 2", 9.2, Now))
''EDITAMOS LA NOTA DEL CURSO 1 EL EXAMEN QUE SACO 5.2 LO PASAMOS A 10
       x.Item(0).Nota = 10

       Dim CursoABuscar = "Curso 2"

''RECORREMOS TODOS LOS EXAMENES BUSCANDO LOS QUE PERTENECEN AL CURSO "CURSO 2"
        For Each Examen As Exam In x
            If Examen.Curso = CursoABuscar Then
                MsgBox(Examen.ToString, Nothing, Examen.Curso)
            End If
        Next

Espero que te sirva...
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

raul338

#2
Cita de: Keyen Night en 18 Diciembre 2009, 16:17 PM
Bueno para que se te sea más facil te recomiendo hacer una clase, como no tenia nada que hacer ;D te la hice:

jaja...aguanten los que no tienen que hacer nada xD

Buena implementacion, aunque igual no hacia falta hacer "alta clase", con una estructura era suficiente y te ahorras unos kb's de codigo y escritura xD XD

Ademas le falta la implementacion "ToString()" para que lo imprima en consola


Código (vbnet) [Seleccionar]
Public Overrides Function ToString() As String
   Return "Curso: " & _curso & vbCrLf & "Nota:" & _nota & vbCrLf & "fecha:" & _fecha & vbCrLf & vbCrLf
End Function


::) ahi esta mejor  ;D

OFFTOPIC: Tengo un byte de mensajes xD XD (miren mi cantidad de mensajes)

Keyen Night

#3
Cita de: raul338 link=topic=278335.msg1369592#msg1369592
Buena implementacion, aunque igual no hacia falta hacer "alta clase", con una estructura era suficiente y te ahorras unos kb's de codigo y escritura xD XD

Bueno todo depende de como quieras el resultado final, si estás buscando que pese lo menos posible, si buscas perfección, comididad o cualquier otra cosa cambiará el codigo así se use para lo mismo.
A mi me parecio más facil con una clase pero con una estructura tambien se podia hacer :)

Si falto ToString :P me gusto mas la etiqueta code=vbnet; cuidado que solo tienes 1 Byte para postear y si comentas otra vez te daras error xD
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

ronald hisp

Ok muchas gracias por sus respuestas--- gracias a sus respuestas pude pasar mi examen de (array y arraylist), pude responder los porques.. gracias... ahora repasar full herencia y polimorfismo... , luego excepciones  y para aprobar mi examen de base datos. Cualquier duda que se me ocurra la posteare ... ;D

Bueno ... muchasss gracias por su apoyo..  se merecen unos ;-)  ;-)  ;-)  ;-) ;-) ;-)

Skeletron

Pero, que te quede claro lo que te han explicado...
O sea.. pasa al siguiente tema, solo si entendiste y creer que eres capaz de hacerlo por ti solo

ronald hisp

#6
Bueno aqui comentando una duda mas que no puedo lograr: :huh: :huh:

Estoy sufriendo en base de datos..
no se como hacer reportes (crystal reports en vb.net) pero mi base de datos esta en MySql.

Busque info sobre crystal reports+vb.net y encontre mediante acces y sql pero muy poco de MySql pero con OLDB(mi conexion no es con OLDB) y no se como hacerlo ... hojala que me puedan ayudar en eso...
bueno el reporte ah crear es cuando termino de matricular aun alumno me muestre dando en el boton mostrar(todo osea fecha,codigo,su nombre ,etc)

esa es mi duda.
encontre ejemplos con sql pero muy poco con MySql...
**************************************************
oh otra cosa que encontre es mediante el formulario... jalar los texbox y los date time picker... eso creo seria mas facil...  o seria complicarme mas la vida..

Espero sus consejos....

seba123neo

Hola, el motor de base de datos no importa a la hora de hacer reportes (no por lo menos de la forma que yo los hago), yo los hago a la "vieja escuela", como los hacia en visual basic 6, los armo en el diseñador de visual studio y desde ahi mismo en el codigo, le paso la consulta SQL y me la toma como origen de datos y listo. pero hay que armar antes la estructura del reporte(los campos), en visual basic 6 tenias que crear unos archivos .ttx, pero ahora en .NET debes insertar un DataSet, y dentro del dataset crear un DataTable y a este ingresarle la estructura del reporte, no me acuerdo, pero creo que en la pagina del guille esta explicado.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson