oliveira99 Posted April 20, 2009 at 11:27 AM Report #257727 Posted April 20, 2009 at 11:27 AM Boas, aqui estou eu novamente para uma questão! Eu estava a fazer um software no visual BASIC 6 que fazia ligação á base dados em Mysql, que se encontrava num servidor! Depois de o ter concluído, decidi modifica-lo e faze-lo no vb 2008, pois este tem mais funções, como vocês sabem.. Só que eu já pesquisei, vi tutorais, vi aqui no forum e tudo só que não encontrei forma de fazer a ligação a base de dados através do vb 2008! Alguém tem alguma ideia como posso fazer a ligação á base de dados, como o fazia no vb6?? Obrigado! Cumps,
Dotinho Posted April 20, 2009 at 01:03 PM Report #257738 Posted April 20, 2009 at 01:03 PM fazes assim: Imports System.Data.SqlClient Imports System.Text Imports System.Threading Public Class SQL Private Sub SQL_Conn Dim conDatabase As SqlConnection = New SqlConnection("Data [serivor]\SQLEXPRESS;Database=[base de Dados];User=[teu user];Password=[e a tua password]") conDatabase.Open() 'Abres a ligação Dim cmdDatabase As SqlCommand = New SqlCommand("SELECT ref," & _ "design, stock FROM dbo.st WHERE design LIKE '%" & TextBox1.Text & "%' ORDER BY ref", conDatabase) em cima tens uma forma de fazer querys.. ========= MODIFICADO===================== Desculpa lá, tava a fazer confusão com o SQL.. algures no site http://dev.mysql.com/downloads/ tens lá o pacote SDK, instalas e ficas logo com as libs pro VS2008 cmps Luis Lourenço
oliveira99 Posted April 20, 2009 at 04:11 PM Author Report #257779 Posted April 20, 2009 at 04:11 PM fazes assim: Imports System.Data.SqlClient Imports System.Text Imports System.Threading Public Class SQL Private Sub SQL_Conn Dim conDatabase As SqlConnection = New SqlConnection("Data [serivor]\SQLEXPRESS;Database=[base de Dados];User=[teu user];Password=[e a tua password]") conDatabase.Open() 'Abres a ligação Dim cmdDatabase As SqlCommand = New SqlCommand("SELECT ref," & _ "design, stock FROM dbo.st WHERE design LIKE '%" & TextBox1.Text & "%' ORDER BY ref", conDatabase) em cima tens uma forma de fazer querys.. ========= MODIFICADO===================== Desculpa lá, tava a fazer confusão com o SQL.. algures no site http://dev.mysql.com/downloads/ tens lá o pacote SDK, instalas e ficas logo com as libs pro VS2008 cmps Boas! Obrigado pela resposta! Já coloquei tudo como disseste!.. Sabes como posso colocar a aparecer os dados num datagrid por exemplo para verificar se está a funcionar correctamente? Peço desculpa pelas várias questões, mas eu estava tão habituado ao Vb6 e mudei para o vb2008 que tem algumas diferenças! cumps,
Dotinho Posted April 20, 2009 at 04:14 PM Report #257781 Posted April 20, 2009 at 04:14 PM jovem so para ver se ta a funcionar, quado fazes conDatabase.Open(), e nao da erro, foi pk a ligação é bem sussedida. eu nao percebo muito bem de dara grids, mas faz antes com uma listview... Dim sdr As SqlDataReader = cmdDatabase.ExecuteReader If sdr.HasRows Then While sdr.Read Dim lvi As New ListViewItem(sdr.GetString(0)) lv.Items.Add(lvi) End While Else Label2.Text = "Sem Dados" End If conDatabase.Close() cmps Luis Lourenço
oliveira99 Posted April 20, 2009 at 04:28 PM Author Report #257784 Posted April 20, 2009 at 04:28 PM Bem criei o list view e quando executo dá-me este um erro na seguinte linha de código: Dim conDatabase As SqlConnection = New SqlConnection("Data [192.168.2.111]\SQLEXPRESS;Database=[gestao];User=[administrador];Password=[123#]") Tenho alguma coisa errada? O ip é do servidor onde se encontra a base de dados! Alguma opinião? Obrigado
Dotinho Posted April 20, 2009 at 04:33 PM Report #257786 Posted April 20, 2009 at 04:33 PM looooooooooool New SqlConnection("Data Source=[192.168.2.111] ' enganei-me é pouco, desculpa. em relação aos [] era só para identificares os campos, mais nada.. vou escrever com os teus dados New SqlConnection("Data Source=192.168.2.111\SQLEXPRESS;Database=gestao;User=administrador;Password=123") tenta assim, desculpa o meu engano.. ========= MODIFICADO ========== Troca o endereço de IP pelo nome de computador, visto que tas numa rede local.. verifica se o servidor ta configurado para aceitas ligações remotas.. Luis Lourenço
hferreira Posted April 20, 2009 at 05:06 PM Report #257794 Posted April 20, 2009 at 05:06 PM O SqlConnection é para o MS Sql Server. Para o MySql tens de fazer referência ao connector correspondente que podes fazer o download a partir site deles e ficará assim: New MySqlConnection Em relação à connection string também está incorrecta pois essa é novamente para o MS Sql Server (aqui encontra a que procuras http://www.connectionstrings.com). Outra alternativa é utilizares um ORM independente da BD tal como este 😁: http://entityorm.uuuq.com http://www.portugal-a-programar.pt/index.php?showtopic= E será só definires que queres utilizar o driver MySql, a connection string e depois o resultado da consulta directamente para o DataSource da grid 😉
oliveira99 Posted April 21, 2009 at 09:57 AM Author Report #257938 Posted April 21, 2009 at 09:57 AM O SqlConnection é para o MS Sql Server. Para o MySql tens de fazer referência ao connector correspondente que podes fazer o download a partir site deles e ficará assim: New MySqlConnection Em relação à connection string também está incorrecta pois essa é novamente para o MS Sql Server (aqui encontra a que procuras http://www.connectionstrings.com). Outra alternativa é utilizares um ORM independente da BD tal como este 😁: http://entityorm.uuuq.com http://www.portugal-a-programar.pt/index.php?showtopic= E será só definires que queres utilizar o driver MySql, a connection string e depois o resultado da consulta directamente para o DataSource da grid 😉 Bem já consegui... utilizei a primeira opção.... Obrigado a todos pela ajuda! Entretanto qualquer duvida comunico! Cumps,
oliveira99 Posted April 21, 2009 at 04:08 PM Author Report #258011 Posted April 21, 2009 at 04:08 PM Boas! Alguém sabe como posso fazer para ir buscar dados a uma tabela da base de dados, que se encontra no servidor e colocar os valores na textbox´s ?!? A tabela tem apenas um linha de dados guardados, que são as configurações da ligação ao servidor (ip servidor, nome BD, user,...)! O que eu tenho neste momento é o seguinte: conn = New MySqlConnection conn.ConnectionString = "Server='" & ip.Text & "';Port='" & port.Text & "';Database='" & bd.Text & "';Uid='" & user.Text & "';Pwd='" & pass.Text & "';Connection Timeout=5;" Try conn.Open() Catch myerror As MySqlException MsgBox("Problema na ligação! Verifique todos os campos!", MsgBoxStyle.Critical) Finally conn.Dispose() End Try SQL = "SELECT * FROM config" myCommand.Connection = conn myCommand.CommandText = SQL myAdapter.SelectCommand = myCommand ... Obrigado! cumps,
José Lopes Posted April 22, 2009 at 11:25 AM Report #258207 Posted April 22, 2009 at 11:25 AM Não podes... Como tu queres aceder à base de dados sem saberes os dados da ligação.... isto é do género... como posso abrir uma gaveta fechada à chave e cuja chave ficou dentro da gaveta................. Este tipo de dados pu se guardam em ficheiros ini, ou no settings do vb Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
oliveira99 Posted April 23, 2009 at 08:37 AM Author Report #258464 Posted April 23, 2009 at 08:37 AM Não podes... Como tu queres aceder à base de dados sem saberes os dados da ligação.... isto é do género... como posso abrir uma gaveta fechada à chave e cuja chave ficou dentro da gaveta................. Este tipo de dados pu se guardam em ficheiros ini, ou no settings do vb Então a unica solução é guardar num base de dados em acess á parte? E caso exista uma eventual troca de servidor, o utilizador muda no acesss a confugurações! È isso? Ou existem uma solução melhor para resolver este problema? Já agora aproveito para colocar mais uma dúvida.. Tou a fazer o login, e no login tem uma combox, para mostrar os utilizadores disponiveis (os que estão na base de dados)... só que da forma que estou a fazer aparece o 1.º utilizador e depois aparece a password .... O código que utilizo é o seguinte: conn = New MySqlConnection conn.ConnectionString = "Server=" & inicial.ip & ";Database=" & inicial.bd & ";Uid=" & inicial.utilizador & ";Pwd=" & inicial.password & ";Connection Timeout=5;" Try conn.Open() Catch myerror As MySqlException MsgBox("Problema na ligação! Verifique todos os campos!", MsgBoxStyle.Critical) config.Show() End Try Dim a As MySqlDataReader Dim max As Integer Dim i As Integer myCommand.Connection = conn myCommand.CommandText = "SELECT count(*) FROM login" a = myCommand.ExecuteReader a.Read() max = a.GetValue(0) a.Close() myCommand.CommandText = "SELECT * FROM login" a = myCommand.ExecuteReader a.Read() For i = 1 To max user.Items.Add(a.GetValue(i)) Next Obrigado! Aguardo respostas! Cumps
oliveira99 Posted April 24, 2009 at 09:05 AM Author Report #258774 Posted April 24, 2009 at 09:05 AM Então a unica solução é guardar num base de dados em acess á parte? E caso exista uma eventual troca de servidor, o utilizador muda no acesss a confugurações! È isso? Ou existem uma solução melhor para resolver este problema? Já agora aproveito para colocar mais uma dúvida.. Tou a fazer o login, e no login tem uma combox, para mostrar os utilizadores disponiveis (os que estão na base de dados)... só que da forma que estou a fazer aparece o 1.º utilizador e depois aparece a password .... O código que utilizo é o seguinte: conn = New MySqlConnection conn.ConnectionString = "Server=" & inicial.ip & ";Database=" & inicial.bd & ";Uid=" & inicial.utilizador & ";Pwd=" & inicial.password & ";Connection Timeout=5;" Try conn.Open() Catch myerror As MySqlException MsgBox("Problema na ligação! Verifique todos os campos!", MsgBoxStyle.Critical) config.Show() End Try Dim a As MySqlDataReader Dim max As Integer Dim i As Integer myCommand.Connection = conn myCommand.CommandText = "SELECT count(*) FROM login" a = myCommand.ExecuteReader a.Read() max = a.GetValue(0) a.Close() myCommand.CommandText = "SELECT * FROM login" a = myCommand.ExecuteReader a.Read() For i = 1 To max user.Items.Add(a.GetValue(i)) Next Obrigado! Aguardo respostas! Cumps Boas! Já arranjei uma forma bastante simples de guardar as configurações de ligação ao servidor.... Guardo as configurações nos settings do vb... app.settings! Se alguem quiser que explique como se faz eu posso explicar! Agora queria saber se alguem me pode ajudar em relação á minha outra dúvida... De ir buscar os utilizadores (login) disponíveis na base de dados e mostra-los na combobox... Tenho em cima o código que utilizado... cumps,
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now