PROBLEMA ACESSO AO BANCO DE DADOS
Oi gente, tudo bem?
Estou fazendo um programa em VB usando Visual Studio e o BD MySQL Workbench
Estou tendo um problema com a conexão, ele até consegue chegar no conecta.Open() só q cai na exceção
Poderiam me ajudar, por favor?
Segue o código abaixo:
Public Sub AbrirConexao(ByRef conecta As MySqlConnection)
Try
conecta = New MySqlConnection
conecta.ConnectionString = [Ô]DRIVER={MySQL ODBC 3.51 Driver};Server=127.0.0.1; User=root; Password=123456; Database=projetoLC[Ô]
conecta.Open()
MessageBox.Show([Ô]Conexão criada com sucesso![Ô])
Catch ex As Exception
MessageBox.Show([Ô]Erro na conexão com o BD[Ô])
End Try
End Sub
Bjão e Origada =D
Estou fazendo um programa em VB usando Visual Studio e o BD MySQL Workbench
Estou tendo um problema com a conexão, ele até consegue chegar no conecta.Open() só q cai na exceção
Poderiam me ajudar, por favor?
Segue o código abaixo:
Public Sub AbrirConexao(ByRef conecta As MySqlConnection)
Try
conecta = New MySqlConnection
conecta.ConnectionString = [Ô]DRIVER={MySQL ODBC 3.51 Driver};Server=127.0.0.1; User=root; Password=123456; Database=projetoLC[Ô]
conecta.Open()
MessageBox.Show([Ô]Conexão criada com sucesso![Ô])
Catch ex As Exception
MessageBox.Show([Ô]Erro na conexão com o BD[Ô])
End Try
End Sub
Bjão e Origada =D
Como assim cai?
é que uso o Debug do Visual Studio pra ver passo-a-passo a conexão.
Como você faz para chamar essa conexão?
Criei uma classe para conexão:
Public Class conexao
Dim comando As New MySqlCommand
Dim armazena As MySqlDataReader
Public Sub AbrirConexao(ByRef conecta As MySqlConnection)
Try
conecta = New MySqlConnection
conecta.ConnectionString = [Ô]DRIVER={MySQL ODBC 3.51 Driver};Server=127.0.0.1; User=root; Password=123456; Database=projetoLC[Ô]
[ô]conecta.ConnectionString = [Ô]jdbc:mysql://localhost/projetoLC, root, 123456[Ô]
conecta.Open()
MessageBox.Show([Ô]Conexão criada com sucesso![Ô])
Catch ex As Exception
MessageBox.Show([Ô]Erro na conexão com o BD[Ô])
End Try
End Sub
Public Sub FecharConexao(ByRef conecta As MySqlConnection)
Try
conecta.Close()
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD![Ô])
End Try
End Sub
Public Sub ExecutaSQL(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String)
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
comando.ExecuteNonQuery()
MessageBox.Show([Ô]Tabela Criada com Sucesso![Ô])
End Sub
Public Function ExecutaSELECT(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String) As MySqlDataReader
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
armazena = comando.ExecuteReader()
Return armazena
End Function
End Class
----------------------------------------------------------------------------------------------------------------------------------------------
Então, quando eu crio a tabela, chamo assim:
Private Sub CadastroUsuario()
conecta = New MySqlConnection()
C = New conexao()
Try [ô]nao consegue acessar o SQL
C.AbrirConexao(conecta)
Try [ô]nao consegue executar o SQL
Dim SQL As String
SQL = [Ô]CREATE TABLE IF NOT EXISTS CadastroUsuario(CodUsuario INTEGER PRIMARY KEY AUTO_INCREMENT, NomeUsuario VARCHAR(30), MatriculaUsuario PRIMARY KEY INTEGER(6), Cargo VARCHAR(15), TipoUsuario VARCHAR(15), Login VARCHAR(10), Senha VARCHAR(8))[Ô]
C.ExecutaSQL(conecta, SQL) [ô]comando que executa na classe
Catch ex As Exception
MessageBox.Show([Ô]Erro no SQL[Ô])
End Try
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD[Ô])
Application.Exit()
End Try
C.FecharConexao(conecta)
End Sub
Public Class conexao
Dim comando As New MySqlCommand
Dim armazena As MySqlDataReader
Public Sub AbrirConexao(ByRef conecta As MySqlConnection)
Try
conecta = New MySqlConnection
conecta.ConnectionString = [Ô]DRIVER={MySQL ODBC 3.51 Driver};Server=127.0.0.1; User=root; Password=123456; Database=projetoLC[Ô]
[ô]conecta.ConnectionString = [Ô]jdbc:mysql://localhost/projetoLC, root, 123456[Ô]
conecta.Open()
MessageBox.Show([Ô]Conexão criada com sucesso![Ô])
Catch ex As Exception
MessageBox.Show([Ô]Erro na conexão com o BD[Ô])
End Try
End Sub
Public Sub FecharConexao(ByRef conecta As MySqlConnection)
Try
conecta.Close()
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD![Ô])
End Try
End Sub
Public Sub ExecutaSQL(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String)
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
comando.ExecuteNonQuery()
MessageBox.Show([Ô]Tabela Criada com Sucesso![Ô])
End Sub
Public Function ExecutaSELECT(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String) As MySqlDataReader
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
armazena = comando.ExecuteReader()
Return armazena
End Function
End Class
----------------------------------------------------------------------------------------------------------------------------------------------
Então, quando eu crio a tabela, chamo assim:
Private Sub CadastroUsuario()
conecta = New MySqlConnection()
C = New conexao()
Try [ô]nao consegue acessar o SQL
C.AbrirConexao(conecta)
Try [ô]nao consegue executar o SQL
Dim SQL As String
SQL = [Ô]CREATE TABLE IF NOT EXISTS CadastroUsuario(CodUsuario INTEGER PRIMARY KEY AUTO_INCREMENT, NomeUsuario VARCHAR(30), MatriculaUsuario PRIMARY KEY INTEGER(6), Cargo VARCHAR(15), TipoUsuario VARCHAR(15), Login VARCHAR(10), Senha VARCHAR(8))[Ô]
C.ExecutaSQL(conecta, SQL) [ô]comando que executa na classe
Catch ex As Exception
MessageBox.Show([Ô]Erro no SQL[Ô])
End Try
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD[Ô])
Application.Exit()
End Try
C.FecharConexao(conecta)
End Sub
Olha, faz assim , eu utilizo essa classe para conexão com o mysql, mas você vai precisar baixar o http://mysql.cce.usp.br/Downloads/Connector-Net/mysql-connector-net-6.4.4.msi e referencia-lo.
Imports System, MySql.Data.MySqlClient.MySqlConnection
[ô][ô][ô] <summary>
[ô][ô][ô] Conexao com o banco de dados
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Public Class Conexao
Dim CN1 As New MySql.Data.MySqlClient.MySqlConnection
[ô]Instanciando um novo objeto “conecta†do tipo OleDbConnection para ser utilizado no projeto.
[ô]Instanciando um novo objeto “comando†do tipo OleDbCommand para ser usado no projeto.
[ô]Public conecta As New ADODB.Connection
Public comando1 As New MySql.Data.MySqlClient.MySqlCommand
[ô] Procedimento para conexão com o banco de dados.
Public Sub Conectar1()
[ô] CN1 = New MySql.Data.MySqlClient.MySqlConnection [ô]conexao usando ADO
CN1 = New MySql.Data.MySqlClient.MySqlConnection([Ô]server=127.0.0.1;user id=altair;password=123;database=silva[Ô])
CN1.Open()
End Sub
[ô] Procedimento para desconectar do banco de dados.
Public Sub Desconectar1()
CN1.Close()
End Sub
[ô] Procedimento para testar conexão com o banco de dados.
Public Sub testaconexao1()
Try
Conectar1()
MsgBox([Ô]Conexão realizada com sucesso!!![Ô])
Catch ex As Exception
MsgBox([Ô]Não foi possÃvel conectar o banco de dados[Ô])
Desconectar1()
End Try
Desconectar1()
End Sub
[ô]Solicitar instancia
Public Function GetConexao1() As MySql.Data.MySqlClient.MySqlConnection
If CN1.State <> ConnectionState.Open Then
Conectar1()
End If
Return CN1
End Function
End Class
Não dá posso usar seu exemplo, tenho que usar essa base que lhe mostrei
por qual motivo não pode mudar sua classe de conexão? assim ela fica bem mais limpa e mais robusta, pois esta utilizando ado.net e não odbc.
Porque a professora não quer.....
Hum, tem como postar aqui o seu projeto, assim fica mais fácil.
Eu já postei, é esse:
Criei uma classe para conexão:
Public Class conexao
Dim comando As New MySqlCommand
Dim armazena As MySqlDataReader
Public Sub AbrirConexao(ByRef conecta As MySqlConnection)
Try
conecta = New MySqlConnection
conecta.ConnectionString = [Ô]DRIVER={MySQL ODBC 3.51 Driver};Server=127.0.0.1; User=root; Password=123456; Database=projetoLC[Ô]
[ô]conecta.ConnectionString = [Ô]jdbc:mysql://localhost/projetoLC, root, 123456[Ô]
conecta.Open()
MessageBox.Show([Ô]Conexão criada com sucesso![Ô])
Catch ex As Exception
MessageBox.Show([Ô]Erro na conexão com o BD[Ô])
End Try
End Sub
Public Sub FecharConexao(ByRef conecta As MySqlConnection)
Try
conecta.Close()
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD![Ô])
End Try
End Sub
Public Sub ExecutaSQL(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String)
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
comando.ExecuteNonQuery()
MessageBox.Show([Ô]Tabela Criada com Sucesso![Ô])
End Sub
Public Function ExecutaSELECT(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String) As MySqlDataReader
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
armazena = comando.ExecuteReader()
Return armazena
End Function
End Class
----------------------------------------------------------------------------------------------------------------------------------------------
Então, quando eu crio a tabela (isso já está dentro do .vb de um form), chamo assim:
Private Sub CadastroUsuario()
conecta = New MySqlConnection()
C = New conexao()
Try [ô]nao consegue acessar o SQL
C.AbrirConexao(conecta)
Try [ô]nao consegue executar o SQL
Dim SQL As String
SQL = [Ô]CREATE TABLE IF NOT EXISTS CadastroUsuario(CodUsuario INTEGER PRIMARY KEY AUTO_INCREMENT, NomeUsuario VARCHAR(30), MatriculaUsuario PRIMARY KEY INTEGER(6), Cargo VARCHAR(15), TipoUsuario VARCHAR(15), Login VARCHAR(10), Senha VARCHAR(8))[Ô]
C.ExecutaSQL(conecta, SQL) [ô]comando que executa na classe
Catch ex As Exception
MessageBox.Show([Ô]Erro no SQL[Ô])
End Try
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD[Ô])
Application.Exit()
End Try
C.FecharConexao(conecta)
End Sub
Criei uma classe para conexão:
Public Class conexao
Dim comando As New MySqlCommand
Dim armazena As MySqlDataReader
Public Sub AbrirConexao(ByRef conecta As MySqlConnection)
Try
conecta = New MySqlConnection
conecta.ConnectionString = [Ô]DRIVER={MySQL ODBC 3.51 Driver};Server=127.0.0.1; User=root; Password=123456; Database=projetoLC[Ô]
[ô]conecta.ConnectionString = [Ô]jdbc:mysql://localhost/projetoLC, root, 123456[Ô]
conecta.Open()
MessageBox.Show([Ô]Conexão criada com sucesso![Ô])
Catch ex As Exception
MessageBox.Show([Ô]Erro na conexão com o BD[Ô])
End Try
End Sub
Public Sub FecharConexao(ByRef conecta As MySqlConnection)
Try
conecta.Close()
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD![Ô])
End Try
End Sub
Public Sub ExecutaSQL(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String)
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
comando.ExecuteNonQuery()
MessageBox.Show([Ô]Tabela Criada com Sucesso![Ô])
End Sub
Public Function ExecutaSELECT(ByVal conecta As MySqlConnection, ByVal instrucaoSQL As String) As MySqlDataReader
comando = New MySqlCommand
comando.Connection = conecta
comando.CommandText = instrucaoSQL
armazena = comando.ExecuteReader()
Return armazena
End Function
End Class
----------------------------------------------------------------------------------------------------------------------------------------------
Então, quando eu crio a tabela (isso já está dentro do .vb de um form), chamo assim:
Private Sub CadastroUsuario()
conecta = New MySqlConnection()
C = New conexao()
Try [ô]nao consegue acessar o SQL
C.AbrirConexao(conecta)
Try [ô]nao consegue executar o SQL
Dim SQL As String
SQL = [Ô]CREATE TABLE IF NOT EXISTS CadastroUsuario(CodUsuario INTEGER PRIMARY KEY AUTO_INCREMENT, NomeUsuario VARCHAR(30), MatriculaUsuario PRIMARY KEY INTEGER(6), Cargo VARCHAR(15), TipoUsuario VARCHAR(15), Login VARCHAR(10), Senha VARCHAR(8))[Ô]
C.ExecutaSQL(conecta, SQL) [ô]comando que executa na classe
Catch ex As Exception
MessageBox.Show([Ô]Erro no SQL[Ô])
End Try
Catch ex As Exception
MessageBox.Show([Ô]Erro no acesso ao BD[Ô])
Application.Exit()
End Try
C.FecharConexao(conecta)
End Sub
Tópico encerrado , respostas não são mais permitidas