GARREGAR_DATAGRIDVIEW

ACCIOLLY 11/09/2015 14:06:32
#451289
boa tarde Ferraz,
Acedito que foi pra vc que passei uma classe de conexão com o mysql já com metodos de crud e pesquisas prontos. Se te passei mesmo, acredito não haver necessidade de vc digitar todas as vezes a mesma connection string, apenas instancie a classe e popule a grid view com o método de pesquisa:

Dim conn As New Conexao() [ô]Essa é a instancia da classe
DataGridView1.DataSource = conn.Pesquisar([Ô]SELECT * FROM TbFerrtas Where Nome Like [ô][Ô] & TxtNome.Text & [Ô]%[ô] Order By Registro[Ô])


só essas duas linhas seriam o suficiente ao invés desses comandos todos.

Caso não foi pra vc que te passei a classe, responde aí que te envio. Ou zipa seu projeto e anexa ele aí pra eu fazer pra vc ver.

Té mais
FERRAZ 11/09/2015 15:21:18
#451297
Acciolly, Nickosoft, boa tarde.

Eu fiz as adaptações usando o codigo no evento Changed do txtnome.txt abaixo e deu um erro vejam;
 Private Sub TxtNome_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNome.TextChanged
Dim criterio As String = TxtNome.Text [ô]pega o texto pra procurar
Dim qtLinhas As Integer = DtaGdView.Rows.Count [ô]pega a quantidade de linhas

For linha As Integer = 0 To qtLinhas - 1
If DtaGdView.Rows(linha).Cells(2).Value.ToString = criterio Then
DtaGdView.Rows(linha).Selected = True
Exit For
End If
Next
End Sub


projeto zipado obrigado;
ACCIOLLY 11/09/2015 16:57:40
#451306
boa tarde ferraz

Finalmente Percebi o que vc está querendo fazer, vc quer fazer uma pesquisa dinamica no banco. tipo quando vc digita um caracter o programa vai filtrando no banco.

fiz as adaptações mas não posso te reenviar o arquivo pois ele é do VS2008 e o meu é 2012. Depois q agente abre num mais atualizado não consegue mais abrir num anterior. em todo caso te reenvio a sua classe de conexão com as devidas correções

Classe Conn.vb

[ô]aqui eu uso as importações para conexao com o banco de dados e suas referencias como muda essa versao do vb
Imports System
Imports System.Data
Imports MySql.Data.MySqlClient
Imports System.Windows.Forms

Public Class Conn

Private caminhoBanco As String = [Ô]SERVER=localhost;DATABASE=Transpetro;UID=root;PASSWORD=1;[Ô]

Public Function Pesquisar(ByVal SQL As String) As DataTable
Dim dados As New DataTable
Try
dados.Rows.Clear()
Dim conectar As New MySqlConnection(caminhoBanco)
conectar.Open()
Dim comando As New MySqlCommand(SQL, conectar)
Dim adapter As New MySqlAdapter(comando)
adapter.Fill(dados)

Catch ex As Exception
MessageBox.Show([Ô]Erro de Comando SQL: [Ô] & ex.Message)
End Try

Return dados
End Function

Public Sub CRUD(ByVal SQL As String)
Try
Dim conectar As New MySqlConnection(caminhoBnco)
conectar.Open()
Dim comando As New MySqlCommand(SQL, conectar)
comando.ExecuteNonQuery()
conectar.Close()
Catch ex As Exception
MessageBox.Show([Ô]Erro de Comando SQL: [Ô] & ex.Message)
End Try
End Sub


End Class


e aqui a codificação do FrmBd

Imports System

Public Class FrmBd

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

PreencheGrid([Ô]SELECT * FROM TbFerrtas ORDER BY Registro[Ô])

End Sub

Private Sub PreencheGrid(ByVal SQL As String)

Dim conectar As New Conn() [ô]instancia da classe Conn.vb
DtaGdView.DataSource = conectar.Pesquisar(SQL) [ô]Essa SQL é o parametro que voce passa quando chama o método PreencheGrid

End Sub

Private Sub TxtNome_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNome.TextChanged
PreencheGrid([Ô]SELECT * FROM TbFerrtas Where Nome Like [ô][Ô] & TxtNome.Text & [Ô]%[ô] Order By Registro[Ô])
End Sub

Private Sub BtBca_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtBca.Click

End Sub
End Class


Viu como a codificação ficou beeeeeemmmmm mais enxuta! rsrrsrsrs

OBS: quando for fazer INSERT, UPDATE ou DELETE utilize apenas o método CRUD ao invés do Pesquisar EX:

Private Sub GravaRegistro(ByVal SQL As String)
Dim conectar As New Conn() [ô]instancia da classe Conn.vb
conectar.CRUD(SQL)
End Sub


daí num botão gravar vc chama esse método

GravaRegistro([Ô]INSERT INTO .....[Ô])


e assim vai

Por agora quando vc abrir o form vai aparecer todos os registros do banco, e quando começar a digitar ele vai filtrando automaticamente. é isso mesmo??????????

Té mais
NICKOSOFT 11/09/2015 18:29:53
#451314
putz se a ideia era essa passou longe do q pensei e entendi.....
pra mim eram coisas totalmente separadas, o preenchimento do grid em um momento, e no segundo marcar apenas a linha q tivesse dentro dos critérios....sem filtrar as linhas e já exibir as q atendem ao critério....

so acho q no text chance precisa antes de carrega-lo desvincular dos dados, tipo dar um clean no grid a cada mudança do text então...
ACCIOLLY 11/09/2015 21:47:32
#451321
kkkkkkk
Pior que pra mim foi a mesma coisa! rsrsrs
só caiu a ficha depois q vi o projeto q ele zipou. Já pensou ele fazer aquele loop no evento change do textbox? Eu particularmente não aconselharia fazer nenhum tipo de busca no evento change até porque cada vez que ele digitar ou apagar um caracter será realizada uma nova conexão e buscar os dados. Pra ele q tá começando é até legal mas imagina isso numa rede monstruosa!

Quanto ao clear do grid não tem necessidade pq o método Pesquisar da classe de conexão já cuida disso!

té mais
FERRAZ 12/09/2015 07:17:02
#451324
Acciolly, bom dis.

Vou fazer as modificaçoes e depois eu posto o resultado e poxa muito obrigado, seria isso mesmo com isso eu pego o registro que quero consultar ou alterar, claro que tenho que montar o botao que vai preencher o form, mais antes tinha que preencher o grid e fazer uma busca no Banco.

Nickosoft, bom dia.

Obrigado vou aprendendo o .net

Grato,
NICKOSOFT 12/09/2015 12:49:06
#451331
aprende sim, não esquenta, basta ter empenho e vontade.....
pessoal aqui tudo ajuda, varias vezes já fiz acesso remoto de são Paulo la no ceara eu acho, esqueci, um colega aqui do fórum q ta começando.....
agora eu já passo as informações não tao mastigadas q é pra ele refinar o trabalho, e praticar o entendimento da coisa.....to batalhando pra ele começar a usar mais a logica, pensar os passos de cada procedimento.....
FERRAZ 13/09/2015 01:58:10
#451340
Acciolly, tudo bem.
Viu esta funcionando perfeitamente, apenas inserir mais um = MySql.Data.MySqlClient.MySqlConnection porque estava dando um erro de referencia. Codigo enxuto e perfeito obrigado amigo.

Nickosoft, tudo bem.
Obrigado pelo apoio.

Grato,
Página 2 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas