ABRIR CONEXAO
Em minha aplicação estou trabalhando com um banco online, e minha dúvida é a seguinte quando abro o form principal já é criada a conexao:
Private Sub frmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim CN As New ADODB.Connection
Dim RS, RS1 As New ADODB.Recordset
Dim da As New OleDb.OleDbDataAdapter
Dim ds As New DataSet
CN = New ADODB.Connection [ô]conexao usando ADO
CN.Open([Ô]DRIVER={MySQL ODBC 5.1 Driver};server=XX;user id=XX;password=;database=XX[Ô])
End Sub
dessa forma ai a conexão já foi feita, o que eu quero é que quando eu abrir um outro form um de cadastro por exemplos ele utulize essa conexão que já foi aberta no form principal, ou seja, quando abrir o form de cadastro não precise criar uma nova conexão.
Private Sub frmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim CN As New ADODB.Connection
Dim RS, RS1 As New ADODB.Recordset
Dim da As New OleDb.OleDbDataAdapter
Dim ds As New DataSet
CN = New ADODB.Connection [ô]conexao usando ADO
CN.Open([Ô]DRIVER={MySQL ODBC 5.1 Driver};server=XX;user id=XX;password=;database=XX[Ô])
End Sub
dessa forma ai a conexão já foi feita, o que eu quero é que quando eu abrir um outro form um de cadastro por exemplos ele utulize essa conexão que já foi aberta no form principal, ou seja, quando abrir o form de cadastro não precise criar uma nova conexão.
entao comece a usar classes e modulos e/ou camadas... segue tutorial do macoratti !
VB .NET- Manutenção de dados com ListView, ADO .NET usando DAL - I
VB .NET- Manutenção de dados com ListView, ADO .NET usando DAL - II
A sim o tutorial é ADO.NET, pois o tipo de conexao que voce esta usando é ADODB com Driver ODBC
Recomendo ADO.NET com o Driver de MYSQL para .NET... mas isso é assunto para outro POST
Abraços
VB .NET- Manutenção de dados com ListView, ADO .NET usando DAL - I
VB .NET- Manutenção de dados com ListView, ADO .NET usando DAL - II
A sim o tutorial é ADO.NET, pois o tipo de conexao que voce esta usando é ADODB com Driver ODBC
Recomendo ADO.NET com o Driver de MYSQL para .NET... mas isso é assunto para outro POST
Abraços
Criei um módulo da seguinte forma:
Module conexao
Dim CN As New ADODB.Connection
Dim RS, RS1 As New ADODB.Recordset
Dim da As New OleDb.OleDbDataAdapter
Dim ds As New DataSet
Public Sub main()
CN = New ADODB.Connection [ô]conexao usando ADO
CN.Open([Ô]DRIVER={MySQL ODBC 5.1 Driver};server=127.0.0.1;user id=altair;password=123;database=exemplo[Ô])
End Sub
End Module
Mas como que faço para chama-lo? tentei usar [Ô]call conexao()[Ô] mas dá o seguinte erro: is a type and cannot be used as an expression.
Module conexao
Dim CN As New ADODB.Connection
Dim RS, RS1 As New ADODB.Recordset
Dim da As New OleDb.OleDbDataAdapter
Dim ds As New DataSet
Public Sub main()
CN = New ADODB.Connection [ô]conexao usando ADO
CN.Open([Ô]DRIVER={MySQL ODBC 5.1 Driver};server=127.0.0.1;user id=altair;password=123;database=exemplo[Ô])
End Sub
End Module
Mas como que faço para chama-lo? tentei usar [Ô]call conexao()[Ô] mas dá o seguinte erro: is a type and cannot be used as an expression.
boa tarde Altair148
olha só voce pode definir essa variavel CN como publica em um modulo dai vc pode criar a rotina de conexao e chamar ela no form principal do programa, e podera usar ela em todo o programa
dai qndo vc fechar o programa, vc fecha a variavel
olha só voce pode definir essa variavel CN como publica em um modulo dai vc pode criar a rotina de conexao e chamar ela no form principal do programa, e podera usar ela em todo o programa
dai qndo vc fechar o programa, vc fecha a variavel
Fiz o módulo da seguinte forma:
Imports System.Data.OleDb
Module conector
Dim CN As New ADODB.Connection
[ô]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 comando As New ADODB.Command
[ô] Procedimento para conexão com o banco de dados.
Public Sub Conectar()
CN = New ADODB.Connection [ô]conexao usando ADO
CN.Open([Ô]DRIVER={MySQL ODBC 5.1 Driver};server=XXX;user id=XXX;password=XXX;database=XXXX[Ô])
[ô]CN.Open()
End Sub
[ô] Procedimento para desconectar do banco de dados.
Public Sub Desconectar()
CN.Close()
End Sub
[ô] Procedimento para testar conexão com o banco de dados.
Public Sub testaconexao()
Try
Conectar()
MsgBox([Ô]Conexão realizada com sucesso!!![Ô])
Catch ex As Exception
MsgBox([Ô]Não foi possÃvel conectar o banco de dados[Ô])
Desconectar()
End Try
Desconectar()
End
End Sub
End Module
no form principal eu coloquei
Call conectar()
E o que coloco nos outros forms? Coloquei neles também [Ô]Call Conectar()[Ô]. Eles conectam, mas aparentemente eles fazem toda a conexão novamente.
Imports System.Data.OleDb
Module conector
Dim CN As New ADODB.Connection
[ô]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 comando As New ADODB.Command
[ô] Procedimento para conexão com o banco de dados.
Public Sub Conectar()
CN = New ADODB.Connection [ô]conexao usando ADO
CN.Open([Ô]DRIVER={MySQL ODBC 5.1 Driver};server=XXX;user id=XXX;password=XXX;database=XXXX[Ô])
[ô]CN.Open()
End Sub
[ô] Procedimento para desconectar do banco de dados.
Public Sub Desconectar()
CN.Close()
End Sub
[ô] Procedimento para testar conexão com o banco de dados.
Public Sub testaconexao()
Try
Conectar()
MsgBox([Ô]Conexão realizada com sucesso!!![Ô])
Catch ex As Exception
MsgBox([Ô]Não foi possÃvel conectar o banco de dados[Ô])
Desconectar()
End Try
Desconectar()
End
End Sub
End Module
no form principal eu coloquei
Call conectar()
E o que coloco nos outros forms? Coloquei neles também [Ô]Call Conectar()[Ô]. Eles conectam, mas aparentemente eles fazem toda a conexão novamente.
^^^^^^^^^^^^^^^DADOS DE login no bd junto no codigo............nao e legal............
Bom esse bd é so para testes mesmo... Muito Obrigado ai KURTGU[txt-color=#e80000] [/txt-color]
Há....
Uma coisa que esqueci de mencionar é a seguinte, pode ser que eu esteja errado...
Com o código que postei por último eu consigo criar uma conexão, e chama-lá nos outros forms. Ai que vem o que eu posso estar enganado.
No form principal ele demora um pouco mais abrir pois ele esta criando a conexão. Já nos outros forms é normal eles demorarem abrir (o mesmo tempo que o form principal), ou ele teria que ser instantâneo, pois a conexão já foi aberta.
Uma coisa que esqueci de mencionar é a seguinte, pode ser que eu esteja errado...
Com o código que postei por último eu consigo criar uma conexão, e chama-lá nos outros forms. Ai que vem o que eu posso estar enganado.
No form principal ele demora um pouco mais abrir pois ele esta criando a conexão. Já nos outros forms é normal eles demorarem abrir (o mesmo tempo que o form principal), ou ele teria que ser instantâneo, pois a conexão já foi aberta.
entao crie uma Função GetConexao o Escopo é assim
Se Conexao_esta_aberta Entao Retorna_a_Conexao
Se Conexao_esta_Fechada Entao Conecta e Retorna_a_Conexao
Alguma duvida para implantar essa ideia ?
Se Conexao_esta_aberta Entao Retorna_a_Conexao
Se Conexao_esta_Fechada Entao Conecta e Retorna_a_Conexao
Alguma duvida para implantar essa ideia ?
Sim tenho dúvidas, é que sou novato, o meu maior medo é de criar uma aplicação online e se cada form que o meu cliente abrir, ele tiver que esperar realizar novamente a conexão ele perde muito tempo. E quando a minha dúvida é como eu implanto essa sua função.
Obrigado
[ô]Solicitar instancia
Public Function GetConexao() As MySqlConnection
If Conexao.State <> ConnectionState.Open Then
Conectar()
End If
Return Conexao
End Function
um simples if Resolve
Tópico encerrado , respostas não são mais permitidas