PROBLEMA COM INSERT E CLASS!!
Galera estou a bastante tempo sem brincar no Vb.net e estou com um problema, não estou conseguindo conectar ao banco pra realizar o insert (muito bobo) porém ja tentei de varias formas e da pal na conexão com o erro: Connection must be valid and open, só que a conexão ta certinho pq ele loga usando o banco normalmente..
tenho a seguir minha classe de conexao:
na minha classe Clientes tenho:
No meu botão Gravar
tenho a seguir minha classe de conexao:
Imports Microsoft.VisualBasic
Imports MySql.Data.MySqlClient
Imports System
Imports MySql.Data
Imports MySql.Data.MySqlClient.MySqlDataReader
Imports MySql.Data.MySqlClient.MySqlConnection
Imports MySql.Data.MySqlClient.MySqlCommand
Public Class conn
Public strCon As String
Dim host As String
Dim user As String
Dim pass As String
Dim banco As String
Dim sql As String
Public Sub New()
host = [Ô]meuhost[Ô]
user = [Ô]root[Ô]
pass = [Ô]password[Ô]
banco = [Ô]banco[Ô]
strCon = [Ô]server=[Ô] & host & [Ô]; user id=[Ô] & user & [Ô]; password=[Ô] & pass & [Ô]; database=[Ô] & banco & [Ô];[Ô]
End Sub
Public Function Conectar() As Boolean
Dim Conexao As New MySqlConnection(strCon)
Try
Conexao.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return Conexao.State
End Function
Public Sub ExecutaQuery(ByVal sql As String)
Dim Conexao As New MySqlConnection(strCon)
Dim objcmd As New MySql.Data.MySqlClient.MySqlCommand(sql)
Try
Conexao.Open()
objcmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show([Ô]Ocorreu um erro: [Ô] & ex.ToString)
Finally
End Try
End Sub
End Class
na minha classe Clientes tenho:
Imports Microsoft.VisualBasic
Imports MySql.Data.MySqlClient
Imports System
Imports MySql.Data
Imports MySql.Data.MySqlClient.MySqlDataReader
Imports MySql.Data.MySqlClient.MySqlConnection
Public Class clsClientes
[ô]Cria ponte conexão
Dim strSql As String
Dim Banco, obj, Conexao As New conn
Dim objConexao As New MySqlConnection(Conexao.strCon)
Dim cmd As New MySqlCommand
Dim sql As String
Dim Nome As String
Dim Tel As String
Dim Email As String
Public Property Nome_() As String
Get
Return Nome
End Get
Set(ByVal value As String)
Nome = value
End Set
End Property
Public Property Tel_() As String
Get
Return Tel
End Get
Set(ByVal value As String)
Tel = value
End Set
End Property
Public Property Email_() As String
Get
Return Email
End Get
Set(ByVal value As String)
Email = value
End Set
End Property
Public Sub GravaCliente()
sql = [Ô]INSERT INTO labdados.zteste(nome,email,contato) VALUES([ô][Ô] & Nome & [Ô][ô],[ô][Ô] & Tel & [Ô][ô],[ô][Ô] & Email & [Ô][ô])[Ô]
Banco.ExecutaQuery(sql)
End Sub
End Class
No meu botão Gravar
Cadastro_Cliente.Nome_ = txtNomeCli.Text
Cadastro_Cliente.Tel_ = txtTelCli.Text
Cadastro_Cliente.Email_ = txtEmailCli.Text
Cadastro_Cliente.GravaCliente()
Amigo,
No objeto Command, você precisa passar a conexão instanciada e aberta. No seu código isso não acontece.
Há duas formas. A primeira é acrescentar a linha em negrito.
A segunda é feita da forma abaixo:
No objeto Command, você precisa passar a conexão instanciada e aberta. No seu código isso não acontece.
Há duas formas. A primeira é acrescentar a linha em negrito.
Public Sub ExecutaQuery(ByVal sql As String)
Dim Conexao As New MySqlConnection(strCon)
Dim objcmd As New MySql.Data.MySqlClient.MySqlCommand(sql)
Try
Conexao.Open()
objcmd.Connection = Conexao
objcmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show([Ô]Ocorreu um erro: [Ô] & ex.ToString)
Finally
End Try
End Sub
A segunda é feita da forma abaixo:
Public Sub ExecutaQuery(ByVal sql As String)
Try
Dim Conexao As New MySqlConnection(strCon)
Conexão.Open()
Dim objcmd As New MySql.Data.MySqlClient.MySqlCommand(sql, Conexao)
objcmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show([Ô]Ocorreu um erro: [Ô] & ex.ToString)
Finally
End Try
End Sub
Valeu FFCOUTO funcionou perfeito !!!!!!!!!
Muito obrigado!
Muito obrigado!
Tópico encerrado , respostas não são mais permitidas