Blackvelvet Posted April 13, 2012 at 03:20 PM Report #448982 Posted April 13, 2012 at 03:20 PM Boas a todos, tenho um dilemas na aplicação que é muito estranho. A aplicação tem 2 tabelas em forms diferentes, 1 serve para fazer alterações e a outra é so de consulta. O codigo é o mesmo para as 2 tabelas. O que não percebo é que uma tabela vai buscar os dados que estão correcto mas a outra vai buscar dados de outra tabela que não tem nada haver com a bd que estou a usar. ? Codigo da 1ª tabela para realizar alterações: Public Class tabela Private da As SqlDataAdapter Private ds As DataSet Private Sub tabela_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'ligação à base de dados Dim myConnectionString As String = _ "Data Source=.\SQLEXPRESS; Initial Catalog=Parque; Integrated Security=SSPI;" ' Cria uma nova ligação à base de dados Dim connection As New SqlConnection(myConnectionString) ' Cria um novo SqlDataAdapter que servirá para actualizar o DataSet Dim SQL As String = "SELECT * FROM gest_ao" da = New SqlDataAdapter(SQL, connection) 'Cria um DataSet, ou seja, uma representação em memória da informação ds = New DataSet ' Coloca a informação da tabela definida no DataSet da.Fill(ds, "gest_ao") ' Define que a fonte de dados da DataGridView é a nossa DataSet ' criando automáticamente as colunas e linhas de dados Me.Lista.DataSource = ds.Tables("gest_ao") ' Limpa a ligação à base de dados. Não é necessário fechar a ligação ' porque esta não foi aberta através do comando .Open() connection = Nothing End Sub Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click ' conecção á base de dados Dim objConnection As New SqlConnection _ ("Data Source=.\SQLEXPRESS;Initial Catalog=Parque;Integrated Security=SSPI;") Dim query As String Select Case cbxFiltagem.SelectedIndex Case 1 'utilizador query = "SELECT * FROM gest_ao WHERE utilizador LIKE '%" & txtProcurar.Text & "%'" Case 2 ' empresa query = "SELECT * FROM gest_ao WHERE empresa LIKE '%" & txtProcurar.Text & "%'" Case 3 'departamento query = "SELECT * FROM gest_ao WHERE departamento LIKE'%" & txtProcurar.Text & "%'" End Select Dim da As New SqlDataAdapter _ (query, objConnection) Dim ds As New DataSet da.Fill(ds, "gest_ao") Lista.DataSource = ds.Tables(0) If Lista.Rows.Count = 0 Then MessageBox.Show("A pesquisa não devolveu qualquer resultado.", "Sem resultados", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub Private Sub btnGravar_Click(sender As System.Object, e As System.EventArgs) Handles btnGravar.Click Dim SQL As String = "Update FROM gest_ao" ' Cria automaticamente o comando para permite actualizar a DataSet Dim cb As New SqlCommandBuilder(da) ' Actualiza na DataSet, e por sua vez na tabela, as alterações efectuadas da.Update(ds, "gest_ao") ' actualiza a tabela End Sub Como podem reparar,este código tem o evento para gravar as alterações. Codigo da tabela só para consulta: Esta vai buscar dados a outra bd que não pertence á aplicação. Private Sub tabela2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'ligação à base de dados Dim myConnectionString As String = _ "Data Source=.\SQLEXPRESS; Initial Catalog=Parque; Integrated Security=SSPI;" ' Cria uma nova ligação à base de dados Dim connection As New SqlConnection(myConnectionString) ' Cria um novo SqlDataAdapter que servirá para actualizar o DataSet Dim SQL As String = "SELECT * FROM gest_ao" da = New SqlDataAdapter(SQL, connection) 'Cria um DataSet, ou seja, uma representação em memória da informação ds = New DataSet ' Coloca a informação da tabela definida no DataSet da.Fill(ds, "gest_ao") ' Define que a fonte de dados da DataGridView é a nossa DataSet ' criando automáticamente as colunas e linhas de dados Me.Tabela.DataSource = ds.Tables("gest_ao") ' Limpa a ligação à base de dados. Não é necessário fechar a ligação ' porque esta não foi aberta através do comando .Open() connection = Nothing End Sub Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click ' conecção á base de dados Dim objConnection As New SqlConnection _ ("Data Source=.\SQLEXPRESS;Initial Catalog=Parque;Integrated Security=SSPI;") Dim query As String Select Case cbxFiltagem.SelectedIndex Case 1 'utilizador query = "SELECT * FROM gest_ao WHERE utilizador LIKE '%" & txtProcurar.Text & "%'" Case 2 ' empresa query = "SELECT * FROM gest_ao WHERE empresa LIKE '%" & txtProcurar.Text & "%'" Case 3 'departamento query = "SELECT * FROM gest_ao WHERE departamento LIKE'%" & txtProcurar.Text & "%'" End Select Dim da As New SqlDataAdapter _ (query, objConnection) Dim ds As New DataSet da.Fill(ds, "gest_ao") Tabela.DataSource = ds.Tables(0) If Tabela.Rows.Count = 0 Then MessageBox.Show("A pesquisa não devolveu qualquer resultado.", "Sem resultados", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub Agradeço a ajuda.
Caça Posted April 13, 2012 at 03:27 PM Report #448984 Posted April 13, 2012 at 03:27 PM Estás a dizer que estás a ir a BD's difrentes mas a tua ConnectionString é exactamente a mesma.. O objectivo é mesmo ir a duas BD's diferentes? Pedro Martins Não respondo a duvidas por PM
Blackvelvet Posted April 13, 2012 at 03:44 PM Author Report #448990 Posted April 13, 2012 at 03:44 PM Estás a dizer que estás a ir a BD's difrentes mas a tua ConnectionString é exactamente a mesma.. Exactamente. O objectivo é mesmo ir a duas BD's diferentes? Não...Só a 1 bd.
Caça Posted April 13, 2012 at 04:01 PM Report #449001 Posted April 13, 2012 at 04:01 PM E está-te a dar dados diferentes? Pedro Martins Não respondo a duvidas por PM
Blackvelvet Posted April 13, 2012 at 04:20 PM Author Report #449014 Posted April 13, 2012 at 04:20 PM E está-te a dar dados diferentes? Correcto. No entanto estive a rever a aplicação desde o inicio e verifiquei que as alterações que realizei,não surgiram efeito. Ou seja,vou comentar uma alteração: Num dos eventos de um botão eu queria que em vez de sair da aplicação, queria voltar ao menu principal da aplicação. Depois de corrar a aplicação as alterações são surgiram efeito,nem no codigo,nem na alteração ao nome do botão. Antes tinha o evento Sair, uso o codigo "End". Alterei para : Nome do botão: Voltar e o codigo era: Me.Hide() inicio.show() . Daí pensar que o problema tenha a haver com a aplicação e não com o codigo, porque não está a aceitar as alterações feitas.
HappyHippyHippo Posted April 13, 2012 at 04:23 PM Report #449016 Posted April 13, 2012 at 04:23 PM se bem me lembro, o VS não apaga um build até ter uma compilação correcta ... parece que a compliação está a falhar e continuar a correr uma build antiga IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Caça Posted April 13, 2012 at 04:28 PM Report #449017 Posted April 13, 2012 at 04:28 PM Faz um Rebuild ao teu projecto Pedro Martins Não respondo a duvidas por PM
Blackvelvet Posted April 13, 2012 at 04:46 PM Author Report #449027 Posted April 13, 2012 at 04:46 PM Já está resolvido. Na combobox que diz "Debug","Release","Configuration Manager", cliquei neste ultimo e coloquei o visto no Build. Problema resolvido. Um muito obrigado, e um grande abraço todos
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