PREECHER DATAGRID UTILIZANDO CLASSE

ALTAIR148 29/07/2011 11:43:21
#380283
Bom dia,

Tenho uma classe que realiza consultas em meu banco Mysql, eu gostaria de fazer a consulta com essa classe e preencher um datagridviewer que esta em meu form. Abaixo segue a classe que utilizo para fazer a consulta.



Public Function LocalizaClientes(ByVal pCliente As DTOCadastroClientes) As String
Dim reader As MySql.Data.MySqlClient.MySqlDataReader
Dim cmd As New MySql.Data.MySqlClient.MySqlCommand([Ô]select * from tb_clientes[Ô], Mysql.GetConexao1)
reader = cmd.ExecuteReader
varlinha = 0
While reader.Read
pCliente.id_cliente = reader([Ô]id_cliente[Ô])
End While
Mysql.Desconectar1()
reader.Close()
cmd.Dispose()
End Function




Obrigado.
KERPLUNK 29/07/2011 13:47:29
#380294
Resposta escolhida
Bom, vc pode retornar uma List<T>:
Public Function LocalizaClientes(ByVal pCliente As DTOCadastroClientes) As List(of DTOCadastroClientes)
dim retorno as List(of DTOCadastroClientes)
Dim reader As MySql.Data.MySqlClient.MySqlDataReader
Dim cmd As New MySql.Data.MySqlClient.MySqlCommand([Ô]select * from tb_clientes[Ô], Mysql.GetConexao1)
reader = cmd.ExecuteReader
varlinha = 0
dim cliente as DTOCadastroClientes
While reader.Read
set cliente = new DTOCadastroClientes
cliente.id_cliente = reader([Ô]id_cliente[Ô])
retorno.Add(cliente)
End While
Mysql.Desconectar1()
reader.Close()
cmd.Dispose()
LocalizaClientes = retorno
End Function

Algo mais ou menos assim.
Depois basta passar isso para o datagrid que vai mostrar os dados...
ALTAIR148 29/07/2011 14:35:40
#380297
Boa tarde,

Agora estou com outra dúvida, como que pego esses valores e jogo no datagrid?

Obrigado.
KERPLUNK 29/07/2011 14:42:19
#380298
dim lista as List(of DTOCadastroClientes)
lista = LocalizaClientes(Null)
grdDados.Datasource = lista

isso...
ALTAIR148 29/07/2011 15:21:06
#380305
Boa tarde,

Cara não consigo de forma alguma, to quebrando a cabeça aqui e nada, estou anexando meu projeto e se tivesse como eu gostaria que desse uma olhada onde estou errando.


Obrigado.
KERPLUNK 29/07/2011 16:02:58
#380310
Pode pegar o código abaixo e simplesmente subistituir no seu form. Você está no caminho certo, basta aprender a separar essas coisas aí tudo em camadas diferentes, que vc vai ter uma app profissional.

Private Sub FrmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim lista As List(Of DTOCadastroClientes)
lista = GetClientes()
Me.DataGridView1.DataSource = lista



End Sub
Private Function GetClientes() As List(Of DTOCadastroClientes)
Dim retorno As New List(Of DTOCadastroClientes)
Dim cliente As New DTOCadastroClientes

[ô]assim é mais ou menos como fica buscando do banco mesmo...
[ô]Using cmd As New MySql.Data.MySqlClient.MySqlCommand([Ô]select * from tb_clientes[Ô], MySql.GetConexao1)
[ô] Using reader As cmd.ExecuteReader
[ô] Do While reader.Read
[ô] cliente = New DTOCadastroClientes
[ô] cliente.id_cliente = reader([Ô]id_cliente[Ô])
[ô] cliente.nome_cliente = reader([Ô]nome_cliente[Ô])
[ô] retorno.Add(cliente)
[ô] Loop
[ô] End Using
[ô]End Using


[ô]Assim, é só pra exemplificar dados sendo preenchidos
[ô]como não tenho seu banco de dados aqui, simulei...
For i = 0 To 20
cliente = New DTOCadastroClientes
cliente.id_cliente = i
cliente.nome_cliente = Chr(i + 36)
retorno.Add(cliente)
Next

GetClientes = retorno


End Function
ALTAIR148 29/07/2011 16:51:21
#380320
Boa tarde,

Consegui separar o código em camadas e funcionou perfeitamente.

Muito Obrigado.
Tópico encerrado , respostas não são mais permitidas