CLASSES COLLECTION NO VB.NET

ALISSON 24/02/2011 19:04:40
#366525
Pessoal, agora estou definitivamente migrando para o VB.net, usando a versão 2010. Ja havia trabalhado algumas rotinas mais nada grande. Agora estou mesmo batando a mão na massa com VB.net. Estou criando classes para acessar o banco de dados e me esbarrei em um problema. No VB6 para acessar um conjunto de registros eu um uma classe do tipo collection, que na verdade é uma busca dos registros para memória. No vb.net tem como fazer isso??? alguem tem algum exemplo de como posso fazer isso? Aproveitando a oportunidade, no VB.net não existe o [Ô]Class builer[Ô] que tem no VB6???
PEGUDO 25/02/2011 08:41:03
#366544
O q vc quer? Colocar os dados retornados do BD em uma Collection utilizando classes?
Se for isso, veja se este exemplo ajuda.

Aqui embaixo está a classe (nomeada Classes):

[txt-color=#0000f0]Public Class[/txt-color] Classes
[txt-color=#0000f0]Public ReadOnly Property [/txt-color]BuscarNomes [txt-color=#0000f0]As Collection[/txt-color]
[txt-color=#0000f0]Get
Dim[/txt-color] C [txt-color=#0000f0]As New[/txt-color] ADODB.Connection, RecSet [txt-color=#0000f0]As[/txt-color] ADODB.RecordSet

C.Open(Conexao)
RecSet = C.Execute([txt-color=#e80000][Ô]select nome from tblFuncionarios[Ô][/txt-color])

[txt-color=#0000f0]While Not[/txt-color] RecSet.EOF
Lista_de_Membros.Add(RecSet([txt-color=#e80000][Ô]nome[Ô][/txt-color]).Value.ToString)
RecSet.MoveNext()
[txt-color=#0000f0]End While[/txt-color]

RecSet = [txt-color=#0000f0]Nothing[/txt-color]
C.Close()

Return Lista_de_Membros
[txt-color=#0000f0]End Get
End Property
End Class[/txt-color]


Você pode utilizar esta classe assim:

No click do botão, por exemplo:

[txt-color=#0000f0]Dim[/txt-color] Nomes [txt-color=#0000f0]As New Collection
Dim[/txt-color] ObjClasses [txt-color=#0000f0]As New[/txt-color] Classes

Nomes = ObjClasses.BuscarNomes


Espero ter te ajudado.
Repare que eu setei a classe como somente leitura ([txt-color=#0000f0]Public ReadOnly[/txt-color]), ou seja, você não poderá enviar valores para dentro dela, só retornar.
Eu aconselho um estudo detalhado para que você possa aprender o uso do [txt-color=#0000f0]Set[/txt-color] ([txt-color=#0000f0]Byval[/txt-color] Value)... [txt-color=#0000f0]End Set[/txt-color] em suas classes.

abraços.
PEGUDO 25/02/2011 09:09:40
#366546
Cara a questão do Builder, acho que foi colocado em seu lugar o CODE SNIPPETS.
São pedaços, trechos de códigos genéricos para você utilizar quando quiser.

Para criar uma classe genérica, por exemplo:

1. Você cria uma classe normalmente e clique nela para abrí-la;
2. No editor de códigos da classe, digite: [txt-color=#0000f0]?[/txt-color] (ponto de interrogação) e tecle Tab;
Vai aparecer um InteliSense com várias opções de códigos para você escolher
3. Para este exemplo clique duas vezes em : [txt-color=#0000f0]Code Patterns: If, For Each, Try Catch, Property, etc[/txt-color];
4. Depois clique em: [txt-color=#0000f0]Properties, Procedures, Events[/txt-color]
5. Finalmente em: [txt-color=#0000f0]Define a Property[/txt-color]

Seu resultado deve ser este:

[txt-color=#0000f0]Private[/txt-color] newPropertyValue [txt-color=#0000f0]As String[/txt-color]
___________________________________
[txt-color=#0000f0]Public Property[/txt-color] NewProperty() [txt-color=#0000f0]As String[/txt-color]
[txt-color=#0000f0]Get
Return[/txt-color] newPropertyValue
[txt-color=#0000f0]End Get
Set[/txt-color]([txt-color=#0000f0]ByVal[/txt-color] value [txt-color=#0000f0]As String[/txt-color])
newPropertyValue = value
[txt-color=#0000f0]End Set
End Property[/txt-color]
ALISSON 25/02/2011 09:31:33
#366547
Pegudo, mais a variável [Ô]Lista_de_Membros[Ô] é declarada como o que???


PEGUDO 25/02/2011 09:48:02
#366554
Resposta escolhida
Desculpa foi erro meu, o certo é:

[txt-color=#0000f0]Public Class [/txt-color]Classes
[txt-color=#0000f0]Public ReadOnly Property[/txt-color] BuscarNomes [txt-color=#0000f0]As[/txt-color] Collection
[txt-color=#0000f0]Get
Dim[/txt-color] C [txt-color=#0000f0]As New[/txt-color] ADODB.Connection, RecSet [txt-color=#0000f0]As[/txt-color] ADODB.RecordSet

C.Open(Conexao)
RecSet = C.Execute([txt-color=#e80000][Ô]select nome from tblFuncionarios[Ô][/txt-color])

BuscarNomes = [txt-color=#0000f0]New[/txt-color] Collection
[txt-color=#0000f0]While Not[/txt-color] RecSet.EOF
BuscarNomes.Add(RecSet([txt-color=#e80000][Ô]nome[Ô][/txt-color]).Value.ToString)
RecSet.MoveNext()
[txt-color=#0000f0]End While[/txt-color]

RecSet = [txt-color=#0000f0]Nothing[/txt-color]
C.Close()

[txt-color=#0000f0]Return[/txt-color] BuscarNomes
[txt-color=#0000f0]End Get
End Property
End Class[/txt-color]
Tópico encerrado , respostas não são mais permitidas