none
Acessar base MySQL RRS feed

  • Pergunta

  • Ola pessoa .....

    Já gastei horas e horas pesquisando uma solução para este problema mas não consigo achar nada. Talvez eu esteja com um problema conceitual e por isso a dificuldade em achar a resposta.

    Estou tentando acessae uma banco MYSQL e estou usando o codigo abaixo, o programa é bem simples, acessar uma tabela e mostrar na tela.....

    Mas não há o que eu faça para resolver o erro :

    "O provedor 'MySql.Data.MySqlClient' não está registrado na máquina local."

    segue abaixo o código que estou usando...

    Se alguem puder ajudar desde ja agradeço.

    Imports System.Data.OleDb
    Imports MySql.Data.MySqlClient

    Public Class Form1
        Dim strconexaoSQL As String = "Provider=MySql.Data.MySqlClient;server=192.168.0.122;User Id=root;password=*****;database=sage"
        Dim sqlconexao As New OleDbConnection(strconexaoSQL)
        Dim strSQL As String
        Dim da As New OleDbDataAdapter
        Dim ds As New DataSet

           Private Sub comboFuncionario_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboFuncionario.SelectedIndexChanged
            strSQL = "SELECT NomeVendedor, Endereco, Cidade, CEP, Telefone, Celular, EMail, PctComissao, PctComissaoProduto, ValorPeca, Ativo, CodigoNoSAGE FROM Funcionarios where CodigoVendedor =" & Me.comboFuncionario.SelectedValue

            If Convert.ToString(Me.comboFuncionario.SelectedValue) <> "" Then
                da = New OleDbDataAdapter(strSQL, sqlconexao)
                da.Fill(ds, "Funcionarios")  <---------------- aqui da o erro --------------
                Dim dt As New DataTable
                dt = ds.Tables("Funcionarios")
                Dim dr As DataRow

                For Each dr In dt.Rows
                    Me.Nome.Text = dr("NomeVendedor")
                    Me.Endereço.Text = dr("Endereco")
                    Me.Cidade.Text = dr("Cidade")
                    Me.TelefoneFixo.Text = dr("Telefone")
                    Me.CEP.Text = dr("CEP")
                    Me.TelefoneMovel.Text = dr("Celular")
                    Me.Email.Text = dr("EMail")
                    Me.Comissao.Text = dr("PctComissao")
                    Me.ComissaoProduto.Text = dr("PctComissaoProduto")
                    Me.ValorPeca.Text = dr("ValorPeca")
                    Me.ValorPeca.Text = FormatNumber(ValorPeca.Text, 2, TriState.True, TriState.UseDefault, TriState.True)
                    Me.Ativo.Checked = dr("Ativo")
                    Me.txtCodigoNoSAGE.Text = dr("CodigoNoSAGE")
                Next
                dt.Rows.Clear()
            End If
        End Sub
    End Class

    Já coloquei o nome do Provider = "MySQLProv" mas o erro continua.

    Abraços,

    Eduardo

    sexta-feira, 28 de setembro de 2012 19:53

Respostas

  • Ok... Problema resolvido.....

    Troquei a linha "myAdapter.Update(ds, "Funcionarios")"

    por

    "myCommand.ExecuteNonQuery()"

    Ta funcionando que é uma beleza...

    • Marcado como Resposta E.Gameiro terça-feira, 2 de outubro de 2012 21:23
    terça-feira, 2 de outubro de 2012 21:22

Todas as Respostas

  • Voce esta a criar ambiguidade no teu project, voce que se conectar a uma base Mysql e usar provedor da microsoft. Nunca vai funcionar tens de baixar o provedor da Mysql aki:

    http://www.mysql.com/downloads/connector/net/

    Depois so chamar no top do teu form 


    http://malange-levi.blogspot.co.uk/

    • Sugerido como Resposta Gleiton César sábado, 29 de setembro de 2012 01:54
    sexta-feira, 28 de setembro de 2012 22:00
    Moderador
  • Ola Malange...

    Grato pela resposta, mas eu já baixei esse provedor e o erro que est ocorrendo é com a utilização dele.

    Abraços,

    Eduardo

    terça-feira, 2 de outubro de 2012 10:55
  • Nesta thread abaixo tem alguns links do macoratti que podem lhe ajudar.

    http://social.msdn.microsoft.com/Forums/pt-BR/vsvbasicpt/thread/10b2cd42-f966-49c2-87cc-4873d549fe75/

    Att.,

    Jeimes Ribeiro

    terça-feira, 2 de outubro de 2012 17:05
  • Ola Jeimes, obrigado pela atenção... mas eu já havia olhada e estudado bastante esses links, mas não ajudaram...

    Abraços,

    terça-feira, 2 de outubro de 2012 17:20
  • Ola Pessoal,

    Eu consigo algum progresso.... já estou acessando a tabela e visualizando os dados da tela (codigo abaixo).

    Contudo a parte de UPDATE não quer funcionar... não da nenhum erro, mas tambem não atualiza...

    alguem consegue ver porque ...?

    Abraços,

    Eduardo

    Private Sub comboFuncionario_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboFuncionario.SelectedIndexChanged
            SQL = "SELECT NomeVendedor, Endereco, Cidade, CEP, Telefone, Celular, EMail, PctComissao, PctComissaoProduto, ValorPeca, Ativo, CodigoNoSAGE FROM Funcionarios where CodigoVendedor =" & Me.comboFuncionario.SelectedValue

            If Convert.ToString(Me.comboFuncionario.SelectedValue) <> "" Then
                'da = New OleDbDataAdapter(strSQL, sqlconexao)
                myCommand.Connection = conn
                myCommand.CommandText = SQL
                myAdapter.SelectCommand = myCommand
                myAdapter.Fill(ds, "Funcionarios")

                dt = ds.Tables("Funcionarios")
                Dim dr As DataRow

                For Each dr In dt.Rows
                    Me.Nome.Text = dr("NomeVendedor")
                    Me.Endereço.Text = dr("Endereco")
                Next
              
                dt.Rows.Clear()
            End If
        End Sub

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conn.ConnectionString = "server=192.168.0.122;User Id=root;password=******;database=sage"

            Me.FuncionariosTableAdapter.Fill(Me.SageDataSet.funcionarios)
            Me.comboFuncionario.SelectedIndex = -1

        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            SQL = "UPDATE Funcionarios SET NomeVendedor='aaaaaaaaaaaaaaa' WHERE CodigoVendedor=7;"

            conn.Open()
            myCommand.Connection = conn
            myCommand.CommandText = SQL
            myAdapter.SelectCommand = myCommand

            myAdapter.Update(ds, "Funcionarios")
            conn.Clone()
           
            MsgBox("Alteração realizado com sucesso .")
            Return
        End Sub

    terça-feira, 2 de outubro de 2012 17:30
  • Ok... Problema resolvido.....

    Troquei a linha "myAdapter.Update(ds, "Funcionarios")"

    por

    "myCommand.ExecuteNonQuery()"

    Ta funcionando que é uma beleza...

    • Marcado como Resposta E.Gameiro terça-feira, 2 de outubro de 2012 21:23
    terça-feira, 2 de outubro de 2012 21:22